fork download
  1. #include <bits/stdc++.h>
  2. #include<iostream>
  3. #include<stdio.h>
  4. using namespace std;
  5. #define int long long
  6. #define ii pair<int, int>
  7. #define F first
  8. #define S second
  9. #define all(X) (X).begin(), (X).end()
  10. #define mutter ios_base::sync_with_stdio(0), cin.tie(0)
  11.  
  12. int rc = 1;//docukcvidkjvckdjcdc
  13. //dkbc vjvhcjsvsvmcskjvcskzjcsnsmcjs,zmc zx
  14.  
  15. signed main()
  16. {
  17. mutter;//sdjbsdhvcsmvsksv
  18. //sdkjvbdlsvslkjvlskjvs
  19. cin >> rc;
  20. vector<int> sqrs;//finding the squares sgcgcgasckhcksjhcc
  21. for (int i = 0; i <= 2e5; i++)
  22. sqrs.push_back(i * i);//kjdb JHV jd vjd vjV JD
  23.  
  24. while (rc--)//tedtduwecdjvwhkvhnvcskjcv
  25. //skjcsjk cks cnscnms cmsnc s cms
  26. {
  27. int o;//KJDBChvhjvdhJDVCHnvhjvKJH
  28. cin >> o;
  29. vector<int> a(o), b(o);
  30. for (int i = 0; i < o; i++)
  31. a[i] = i;//hjvdhvsfvhdshshvksjhsjhvsk
  32.  
  33. b = a;//cvjhcvhcvJCJHCVhmc nnx n jn
  34.  
  35. int id = o - 1;//testcases
  36. while (id >= 0)//ping the dirt
  37. {
  38.  
  39. int cure = a[id];
  40. int actual_num = *lower_bound(all(sqrs), a[id]);
  41. //sdvsdhvsdvjhvsnvcvnsvcjsmsmnvcsnvsnm,s,s
  42. int dist = actual_num - cure;
  43. reverse(b.begin() + dist, b.begin() + cure + 1);
  44. //skjvbsvdjhsdjmsnscnbnbvs,nvcsnvcvsm
  45. id = dist - 1;
  46. }
  47.  
  48. for (auto x : b)//akbcavskcjHCjNXCVXHNCNXCxnc,xcnxzncvcmn
  49. //akcjhCJVCJVKCJ,jcjchDCJD
  50. cout << x << ' ';
  51. cout << endl;//out the code valudssz
  52. }
  53.  
  54. return 0;
  55. }
  56.  
Success #stdin #stdout 0.01s 5312KB
stdin
3
3
4
7
stdout
1 0 2 
0 3 2 1 
1 0 2 6 5 4 3