fork download
  1. #include<bits/stdc++.h>;
  2. #define pa pair<long long,long long>
  3. #define fi first
  4. #define ll long long
  5. #define se second
  6. using namespace std;
  7. const long long M=998244853;
  8. const int M7=1e7+9;
  9. const int M6=1e6+9;
  10. const int M5=1e5+9;
  11. const int M8=1e8+9;
  12. long long M1=166666668;
  13. struct ds
  14. {
  15. long long fi,se,th;
  16.  
  17. };
  18. long long n,n1,m1,j,k,k1,a[M6],c[201],c1[201],e[201],e1[201],b[201][201],m2,q,p,d,d1,d2,tam,l,l1,r1,r,t,i,y,x,z,t1,kq,kq1,kq2,dv,chx2,y2,so,d3,m;
  19. string s,s1,s2,s3;
  20. //map<long long,long long> m;
  21. //double b[M6];
  22. //pair<long long,long long> a[M6];
  23. //pa b[M6];
  24. //pa c[1000009];
  25. //ds1 a[100009];
  26. //vector<long long> a[100009];
  27. vector<pa> v,v1;
  28. //multiset<long long> sx;
  29. //unordered_map<long long,long long> m;
  30. deque<long long> dx,dx1;
  31. //set<long long> sx;
  32. //priority_queue<long long> dx;
  33. bool sx1(pa x,pa y)
  34. {
  35. return x.fi<y.fi || (x.fi==y.fi && x.se<y.se);
  36. }
  37. bool sx(long long x,long long y)
  38. {
  39. return x>y;
  40. }
  41. long long scp(long long x)
  42. {
  43. return (double)sqrt(x)==(long long)sqrt(x);
  44. }
  45. void ql(long long i)
  46. {
  47. if(d2>0) return;
  48. if(d==2*n)
  49. {
  50. for(long long i=1;i<=n;i++)
  51. {
  52. for(long long j=1;j<=n;j++) cout <<b[i][j]<<char(32);
  53. cout <<'\n';
  54. }
  55. cout <<'\n';
  56. d2++;
  57. return;
  58. }
  59. if(i==v.size()) return;
  60. if(d%2==0)
  61. {
  62. if(c[v[i].fi]==0 && c1[v[i].se]==0)
  63. {
  64. c[v[i].fi]=1;
  65. c1[v[i].se]=1;
  66. b[v[i].fi][v[i].se]=1;
  67. d++;
  68. ql(i+1);
  69. d--;
  70. c[v[i].fi]=0;
  71. c1[v[i].se]=0;
  72. b[v[i].fi][v[i].se]=0;
  73. }
  74. }
  75. else
  76. {
  77. if(e[v[i].fi]==0 && e1[v[i].se]==0)
  78. {
  79. e[v[i].fi]=1;
  80. e1[v[i].se]=1;
  81. b[v[i].fi][v[i].se]=2;
  82. d++;
  83. ql(i+1);
  84. d--;
  85. e[v[i].fi]=0;
  86. e1[v[i].se]=0;
  87. b[v[i].fi][v[i].se]=0;
  88. }
  89. }
  90. ql(i+1);
  91. }
  92. int main()
  93. {
  94. ios_base::sync_with_stdio(0);
  95. cin.tie(0);
  96. cout.tie(0);
  97. //freopen("BAI05.inp","r",stdin);
  98. // freopen("BAI05.out","w",stdout);
  99. cin >>n;
  100. x=1;
  101. y=n;
  102. d=d1=1;
  103. while(v.size()<n*n)
  104. {
  105. for(long long i=x;i<=y;i++) v.push_back({x,i});
  106. for(long long i=x+1;i<=y;i++) v.push_back({i,y});
  107. for(long long i=y-1;i>=x;i--) v.push_back({y,i});
  108. for(long long i=y-1;i>=x+1;i--) v.push_back({i,x});
  109. x++;y--;
  110. }
  111. d=0;
  112. ql(0);
  113. }
  114.  
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout