fork download
  1. def cmp(a,b,f):
  2. if (f>0):
  3. return a>b
  4. else:
  5. return a<b
  6.  
  7. def partSort(arr,ibeg,iend,f):
  8. if (iend>ibeg):
  9. sep=arr[(ibeg+iend)//2]
  10. i=ibeg
  11. j=iend
  12. while(True):
  13. while(cmp(sep,arr[i],f)): # arr[i]<sep):
  14. i+=1
  15. while(cmp(arr[j],sep,f)): # arr[j]>sep):
  16. j-=1
  17. if (i<=j):
  18. arr[i],arr[j]=arr[j],arr[i]
  19. i+=1
  20. j-=1
  21. if (i>j):
  22. break
  23. partSort(arr,ibeg,j,f)
  24. partSort(arr,i,iend,f)
  25.  
  26. n = int(input())
  27. arr = list(map(int, input().split(maxsplit = n)))
  28. ibeg, iend, f = map(int, input().split(maxsplit = 3))
  29. partSort(arr,ibeg-1,iend-1,f)
  30. print(str(arr))
  31.  
  32.  
Success #stdin #stdout 0.02s 27712KB
stdin
6
1 2 3 4 5 6
2 5 -1

stdout
[1, 5, 4, 3, 2, 6]