fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define in(a, b) for (ll i = (a); i <= (b); i++) // in using i
  4. #define inj(a, b) for (ll j = (a); j <= (b); j++) // in using j
  5. #define ink(a, b) for (ll k = (a); k <= (b); k++) // in using k
  6. #define inr(a, b) for(ll i = (a); i >= (b); i--) // in reverse
  7. #define it ll tcs; cin>>tcs; while(tcs--) // include test cases
  8. #define ina(arr,n) ll arr[(n+1)]; in(1,n) cin>>arr[i] // input arr of n elements
  9. #define pb push_back
  10. #define vll vector<ll> v
  11. ll mod= 1e9+7;
  12. using namespace std;
  13. // void PrimeSieve(ll n){
  14. // ll count=0;
  15. // ll a[n+1];
  16. // in(1,n) a[i]=i;
  17. // in(2,n){
  18. // if(a[i]!=0){
  19. // count++;
  20. // // cout<<i<<endl;
  21. // for(ll j=i;j<=n;j+=i){
  22. // a[j]=0;
  23. // }
  24. // }
  25. // }
  26. // cout<<count;
  27. // }
  28. int main(){
  29. ios_base::sync_with_stdio(false);
  30. cin.tie(NULL);
  31. cout.tie(NULL);
  32. cout<<setprecision(30);
  33.  
  34.  
  35.  
  36.  
  37.  
  38. it{
  39. ll n;
  40. cin>>n;
  41. bool b=1;
  42. bool arr[n];
  43. in(0,n-1) arr[i]=1;
  44. ll a[n];
  45. in(0,n-1) a[i]=-1;
  46. inr(n-1,0){
  47. for(ll j=n-1;j>=0;j--){
  48. if((sqrt(i+j)*sqrt(i+j)==i+j)&&(arr[j]==1)){
  49. a[i]=j;
  50. arr[j]=0;
  51. break;
  52. }
  53. }
  54. }
  55. in(n-1,0) cout<<a[i]<<" ";
  56. in(0,n-1){
  57. if(a[i]==-1){
  58. b=0;
  59. break;
  60. }
  61. }
  62. if(!b) cout<<-1<<" ";
  63. else in(0,n-1) cout<<a[i]<<" ";
  64. cout<<endl;
  65. }
  66.  
  67.  
  68.  
  69.  
  70.  
  71. return 0;
  72. }
  73.  
Success #stdin #stdout 0.01s 5536KB
stdin
1
7
stdout
4 3 2 1 0 6 5