fork download
  1. # your code goes here
  2. # your code goes here
  3. # your code goes here
  4.  
  5. def quickSort(left, right, li):
  6. pivot = left
  7. j = pivot
  8. i = left + 1
  9.  
  10. if left < right:
  11. for i in range(left, right+1):
  12. if li[pivot].data > li[i].data:
  13. j = j + 1
  14. li[i].setChgIdx(j)
  15. li[j].setChgIdx(i)
  16. li[j], li[i] = li[i], li[j]
  17. li[left].setChgIdx(j)
  18. li[j].setChgIdx(left)
  19. li[left], li[j] = li[j], li[left]
  20.  
  21. pivot = j
  22.  
  23. quickSort(left, pivot-1, li)
  24. quickSort(pivot+1, right, li)
  25.  
  26. def quickSort2(left, right, li):
  27. pivot = left
  28. j = pivot
  29. i = left + 1
  30.  
  31. if left < right:
  32. for i in range(left, right+1):
  33. if li[pivot].orgIdx > li[i].orgIdx:
  34. j = j + 1
  35. li[j], li[i] = li[i], li[j]
  36. li[left], li[j] = li[j], li[left]
  37. pivot = j
  38.  
  39. quickSort2(left, pivot-1, li)
  40. quickSort2(pivot+1, right, li)
  41.  
  42. def main():
  43.  
  44. d = {}
  45. n = int(input())
  46. li = list(map(int, input().split()))
  47. tList = []
  48.  
  49. for i in range(n):
  50. t = test(i, int(li[i]), i)
  51. tList.append(t)
  52.  
  53. quickSort(0, n-1, tList)
  54.  
  55. for i in range(n):
  56. print(tList[i].chgIdx, end=' ')
  57.  
  58.  
  59.  
  60.  
  61. class test():
  62. def __init__(self, orgIdx, data, chgIdx):
  63. self.orgIdx = orgIdx
  64. self.data = data
  65. self.chgIdx = chgIdx
  66.  
  67. def setChgIdx(self, chgIdx):
  68. self.chgIdx = chgIdx
  69.  
  70. def p(self):
  71. print(self.orgIdx, self.data, self.chgIdx)
  72.  
  73. main()
Success #stdin #stdout 0.02s 9324KB
stdin
5
50 23 54 24 123
stdout
0 1 2 3 4