Advertisement
a53

ghem

a53
Nov 20th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. ifstream fin("ghem.in");
  4. ofstream fout("ghem.out");
  5. int n,x,y,i,j,k,p,a[502][502];
  6. char d;
  7. void rama(int p, int k){
  8. ///(k,k) - (k,n+1-k)
  9. /// | |
  10. ///(n+1-k,k)- (n+1-k,n+1-k)
  11. if(p==0){
  12. int i=k, j=k;
  13. while(j<n+1-k){fout<<a[i][j]<<" "; j++;};
  14. while(i<n+1-k){fout<<a[i][j]<<" "; i++;};
  15. while(j>k){fout<<a[i][j]<<" "; j--;};
  16. while(i>k){fout<<a[i][j]<<" "; i--;};
  17. return;
  18. }
  19. if(p==1){
  20. int i=k, j=n+1-k;
  21. while(i<n+1-k){fout<<a[i][j]<<" "; i++;};
  22. while(j>k){fout<<a[i][j]<<" "; j--;};
  23. while(i>k){fout<<a[i][j]<<" "; i--;};
  24. while(j<n+1-k){fout<<a[i][j]<<" "; j++;};
  25. return;
  26. }
  27. if(p==2){
  28. int i=n+1-k, j=n+1-k;
  29. while(j>k){fout<<a[i][j]<<" "; j--;};
  30. while(i>k){fout<<a[i][j]<<" "; i--;};
  31. while(j<n+1-k){fout<<a[i][j]<<" "; j++;};
  32. while(i<n+1-k){fout<<a[i][j]<<" "; i++;};
  33. return;
  34. }
  35. if(p==3){
  36. int i=n+1-k, j=k;
  37. while(i>k){fout<<a[i][j]<<" "; i--;};
  38. while(j<n+1-k){fout<<a[i][j]<<" "; j++;};
  39. while(i<n+1-k){fout<<a[i][j]<<" "; i++;};
  40. while(j>k){fout<<a[i][j]<<" "; j--;};
  41. return;
  42. }
  43. if(p==4){
  44. int i=k, j=k;
  45. while(i<n+1-k){fout<<a[i][j]<<" "; i++;};
  46. while(j<n+1-k){fout<<a[i][j]<<" "; j++;};
  47. while(i>k){fout<<a[i][j]<<" "; i--;};
  48. while(j>k){fout<<a[i][j]<<" "; j--;};
  49. return;
  50. }
  51. if(p==5){
  52. int i=n+1-k, j=k;
  53. while(j<n+1-k){fout<<a[i][j]<<" "; j++;};
  54. while(i>k){fout<<a[i][j]<<" "; i--;};
  55. while(j>k){fout<<a[i][j]<<" "; j--;};
  56. while(i<n+1-k){fout<<a[i][j]<<" "; i++;};
  57. return;
  58. }
  59. if(p==6){
  60. int i=n+1-k, j=n+1-k;
  61. while(i>k){fout<<a[i][j]<<" "; i--;};
  62. while(j>k){fout<<a[i][j]<<" "; j--;};
  63. while(i<n+1-k){fout<<a[i][j]<<" "; i++;};
  64. while(j<n+1-k){fout<<a[i][j]<<" "; j++;};
  65. return;
  66. }
  67. if(p==7){
  68. int i=k, j=n+1-k;
  69. while(j>k){fout<<a[i][j]<<" "; j--;};
  70. while(i<n+1-k){fout<<a[i][j]<<" "; i++;};
  71. while(j<n+1-k){fout<<a[i][j]<<" "; j++;};
  72. while(i>k){fout<<a[i][j]<<" "; i--;};
  73. return;
  74. }
  75. }
  76. int main()
  77. {
  78. int r=0;
  79. fin>>n>>x>>y>>d;
  80. for(i=1;i<=n;i++){
  81. for(j=1;j<=n;j++){
  82. r++; a[i][j]=r;
  83. }
  84. }
  85. if(d=='O' && x==1 && y==1)p=0;
  86. if(d=='V' && x==1 && y==1)p=4;
  87. if(d=='V' && x==1 && y==n)p=1;
  88. if(d=='O' && x==1 && y==n)p=7;
  89. if(d=='O' && x==n && y==n)p=2;
  90. if(d=='V' && x==n && y==n)p=6;
  91. if(d=='V' && x==n && y==1)p=3;
  92. if(d=='O' && x==n && y==1)p=5;
  93. for(k=1;k<=n/2;k++){
  94. rama(p,k);
  95. }
  96. if(n%2==1){
  97. fout<<a[n/2+1][n/2+1];
  98. }
  99. fin.close();
  100. fout.close();
  101. return 0;
  102. }
  103.  
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement