a53

pavele

a53
Jun 7th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. ifstream fin("pavele.in");
  5. ofstream fout("pavele.out");
  6. int n, m, r, k, k1, a[301][301], t;
  7. int main()
  8. {
  9. fin>>n;
  10. m=n/2;
  11. if(m%2==0)
  12. {
  13. r=(n*n-1)/4;
  14. a[1][1]=0;
  15. k=1;
  16. for(int i=2; i<=n; i++)
  17. {
  18. a[i][1]=-k;
  19. a[1][i]=k;
  20. if(i%2)
  21. k++;
  22. }
  23. for(int i=2; i<=n; i++)
  24. {
  25. for(int j=2; j<=n/2+1; j++)
  26. {
  27. a[i][j]=k;
  28. if(j%2)
  29. k++;
  30. }
  31. }
  32. k=n/2+1;
  33. for(int i=n/2+2; i<=n; i++)
  34. {
  35. for(int j=2; j<=n; j++)
  36. {
  37. a[j][i]=-k;
  38. if(j%2)
  39. k++;
  40. }
  41. }
  42. }
  43. else
  44. {
  45. t=n-2;
  46. r=(n*n-5)/4;
  47. a[1][1]=a[n-1][n-1]=a[n-1][n]=0;
  48. a[n][n-1]=a[n][n]=0;
  49. k=1;
  50. for(int i=2; i<=n; i++)
  51. {
  52. a[i][1]=-k;
  53. a[1][i]=k;
  54. if(i%2)
  55. k++;
  56. }
  57. k1=k;
  58. for(int i=2; i<=t; i++)
  59. {
  60. for(int j=2; j<=t/2+1; j++)
  61. {
  62. a[i][j]=k;
  63. if(j%2)
  64. k++;
  65. }
  66. }
  67. for(int i=t/2+2; i<=t; i++)
  68. {
  69. for(int j=2; j<=t; j++)
  70. {
  71. a[j][i]=-k1;
  72. if(j%2)
  73. k1++;
  74. }
  75. }
  76. for(int j=2; j<n-1; j++)
  77. {
  78. a[n-1][j]=a[n][j]=-(k1++);
  79. }
  80. for(int j=2; j<n-1; j++)
  81. {
  82. a[j][n-1]=a[j][n]=k++;
  83. }
  84. }
  85. fout<<r<<'\n';
  86. for(int i=1; i<=n; i++)
  87. {
  88. for(int j=1; j<=n; j++)
  89. fout<<a[i][j]<<" ";
  90. fout<<'\n';
  91. }
  92. return 0;
  93. }
Add Comment
Please, Sign In to add comment