fork(3) download
  1. //Author : pakhandi
  2. //
  3. using namespace std;
  4.  
  5. #include<iostream>
  6. #include<cstdio>
  7. #include<cstdlib>
  8. #include<algorithm>
  9. #include<cmath>
  10. #include<cstring>
  11. #include<iterator>
  12. #include<sstream>
  13. #include<fstream>
  14. #include<cassert>
  15. #include<climits>
  16. #include<cstdlib>
  17. #include<string>
  18. #include<vector>
  19. #include<queue>
  20. #include<deque>
  21. #include<stack>
  22. #include<map>
  23. #include<set>
  24. #include<bitset>
  25.  
  26. #define wl(n) while(n--)
  27. #define fl(i,a,b) for(i=a; i<b; i++)
  28. #define rev(i,a,b) for(i=a; i>=b; i--)
  29. #define scan(n) scanf("%d", &n)
  30. #define scans(s) scanf("%s", s)
  31. #define scanc(c) scanf("%c", &c)
  32. #define scanp(f) scanf("%f", &f)
  33. #define scanll(l) scanf("%lld", &l)
  34. #define scanllu(u) scanf("%llu", &u)
  35. #define print(n) printf("%d\n", n)
  36. #define prints(s) printf("%s\n", s)
  37. #define printc(c) printf("%c\n", c)
  38. #define printp(f) printf("%f\n", f)
  39. #define printll(l) printf("%lld\n", l)
  40. #define printllu(u) printf("%llu\n", u)
  41. #define nline printf("\n")
  42. #define mclr(strn) strn.clear()
  43. #define ignr cin.ignore()
  44. #define MOD 1000000007
  45. #define ll long long int
  46. #define u64 unsigned long long int
  47.  
  48. int mat[1005][1005];
  49.  
  50. void foo(int n)
  51. {
  52. ll sqr=n*n;
  53. int i=0, j=0;
  54. fl(i,0,n+1)
  55. fl(j,0,n+1)
  56. mat[i][j]=0;
  57. int limit=1;
  58. i=0; j=0;
  59. while(limit<=sqr)
  60. {
  61. while(mat[i][j]==0 && j<n && limit<=sqr)
  62. {
  63.  
  64. mat[i][j]=limit;
  65. limit++; j++;
  66. }
  67. i++; j--;
  68. while(mat[i][j]==0 && i<n && limit<=sqr)
  69. {
  70. mat[i][j]=limit;
  71. limit++; i++;
  72. }
  73. i--; j--;
  74. while(mat[i][j]==0 && j>=0 && limit<=sqr)
  75. {
  76. mat[i][j]=limit;
  77. limit++; j--;
  78. }
  79. j++; i--;
  80. while(mat[i][j]==0 && i>=0 && limit<=sqr)
  81. {
  82. mat[i][j]=limit;
  83. limit++; i--;
  84. }
  85. i++; j++;
  86. }
  87. }
  88.  
  89. int main()
  90. {
  91. int i, j, cases, k=1;
  92. int n;
  93. scan(n);
  94. foo(n);
  95. fl(i,0,n)
  96. {
  97. fl(j,0,n)
  98. printf("%d\t", mat[i][j]);
  99. nline;
  100. }
  101. return 0;
  102. }
  103.  
Success #stdin #stdout 0s 6632KB
stdin
3
stdout
1	2	3	
8	9	4	
7	6	5