fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. #define dd double
  5. #define ld long double
  6. #define ull unsigned long long
  7. #define yes cout << "YES\n"
  8. #define no cout << "NO\n"
  9. #define el "\n"
  10. #define fast ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  11. #define fix(x) cout << fixed << setprecision(x)
  12. #define all(v) v.begin(),v.end()
  13. #define dpp(v,val) memset(v,val,sizeof(v))
  14. #define mod 1e9+7
  15. const int N = 1e5 + 5;
  16. int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } // log(n) __gcd(a,b)
  17. int n;
  18. vector<vector<int>>v;
  19. int cnt=0;
  20. int f=1;
  21. void rec( vector<vector<int>> &v,int i,int j)
  22. {
  23. if(i<0||j<0||i>=n||j>=n) return;
  24. cnt++;
  25. cout<<v[i][j]<<' ';
  26. if(cnt%n==0) cout<<el;
  27.  
  28. if(i==n-1&&j==n-1) return;
  29. if(f==1)
  30. {
  31. if(j+1<n&&i-1>=0)
  32. rec(v,i-1,j+1);
  33. else {f=4; if(j+1<n) rec(v,i,j+1); else rec(v,i+1,j); }
  34. }
  35. else if(f==4)
  36. {
  37. if(i+1<n&&j-1>=0)
  38. rec(v,i+1,j-1);
  39. else { f=1; if(i+1<n) rec(v,i+1,j); else rec(v,i,j+1); }
  40. }
  41. }
  42. void HereWeGoAgain()
  43. {
  44. cin>>n;
  45. v.resize(n);
  46. for(int i=0;i<n;i++)
  47. v[i].resize(n);
  48. for(int i=0;i<n;i++)
  49. for(int j=0;j<n;j++)
  50. cin>>v[i][j];
  51. rec(v,0,0);
  52. }
  53. int32_t main()
  54. {
  55. fast
  56. int t=1;
  57. cin>>t;
  58. for(int i=1;i<=t;i++)
  59. {
  60. HereWeGoAgain();
  61. }
  62. return 0;
  63. return 0;
  64. }
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
Standard output is empty