fork download
  1. def check(l,p):
  2. t=len(l)
  3. j=p[1]-p[0]
  4. for x in range(t):
  5. p1=l[x]
  6. j1=p1[1]-p1[0]
  7. if j1>j:
  8. pass
  9. elif j1<j:
  10. l.insert(x,p)
  11. return l
  12. elif j1==j:
  13. if p1[0]<p[0]:
  14. pass
  15. else:
  16. l.insert(x,p)
  17. return l
  18. l.append(p)
  19. return l
  20. for _ in range(int(input())):
  21. n=int(input())
  22. l1=[0]*n
  23. l=[(0,n-1)]
  24. for x in range(1,n+1):
  25. t=l.pop(0)
  26. ind=(t[1]+t[0])//2
  27. l1[ind]=x
  28. if t[0]<ind:check(l,(t[0],ind-1))
  29. if t[1]>ind:check(l,(ind+1,t[1]))
  30. print(*l1)
  31.  
Success #stdin #stdout 0.02s 9352KB
stdin
1
6
stdout
3 4 1 5 2 6