fork download
  1. import copy
  2. t = int(raw_input())
  3. while t:
  4. n= int(raw_input())
  5. l=[]
  6. arr = raw_input()
  7. l = list(map(int, arr.split(' ')))
  8. count=0
  9. if n==1:
  10. print "0"
  11. print l[0]
  12. elif n==2:
  13. if l[0] ==l[1]:
  14. print "0"
  15. print l[0],l[1]
  16. else:
  17. print "2"
  18. print l[1],l[0]
  19. else:
  20. g = set(l)
  21. if len(g) == len(l):
  22. print len(g)
  23. f = l[len(l)-1:-2:-1]+l[0:len(l)-1:1]
  24. #print f
  25. print " ".join(str(i) for i in f)
  26. else:
  27. m = copy.copy(l)
  28. for i in range(len(l)):
  29. #print m,"sjsnnsj",l
  30. for j in range(i,len(m)):
  31. if l[i] !=m[j]:
  32. m[i],m[j] = m[j],m[i]
  33. #print m
  34. break
  35. for i in range(len(l)-1,0,-1):
  36. #print m,"sjsnnsj",l
  37. for j in range(i,0,-1):
  38. if l[i] !=m[j]:
  39. m[i],m[j] = m[j],m[i]
  40. #print m
  41. break
  42.  
  43. for i in range(len(l)):
  44. if l[i]!=m[i]:
  45. count = count+1
  46. print count
  47. print " ".join(str(i) for i in m)
  48.  
  49.  
  50.  
  51.  
  52.  
  53. t = t-1
  54.  
Success #stdin #stdout 0.02s 64588KB
stdin
4
3
1 2 3
4
1 1 2 2
3
1 1 2
5
1 1 2 3 2
stdout
3
3 1 2
4
2 2 1 1
2
2 1 1
5
2 3 1 2 1