fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. const int MAX_SIZE = 50;
  5.  
  6. int main() {
  7. int mtSize, windLine[MAX_SIZE + 1][MAX_SIZE + 1];
  8. cin >> mtSize;
  9. for (int line = 1; line <= mtSize; ++line) {
  10. for (int col = 1; col <= mtSize; ++col) {
  11. cin >> windLine[line][col];
  12. }
  13. }
  14. int lineDir = 0, colDir = 1;
  15. /*
  16. cosmin
  17. 2025-02-23 11:19:54
  18. combine these 2 variables into a single direction variable -> solved
  19. */
  20. for (int linePos = 1, colPos = 1; linePos <= mtSize && colPos <= mtSize; ) {
  21. /*
  22. cosmin
  23. 2025-02-23 11:23:47
  24. there should be an empty space after the ";" -> solved
  25. */
  26. cout << windLine[linePos][colPos] << " " << endl;
  27. //int lPlusC = linePos + colPos;
  28. /*
  29. cosmin
  30. 2025-02-23 11:24:30
  31. get rid of this variable -> solved
  32. */
  33. if ((linePos + colPos) % 2 && ((lineDir == 0 && colDir == 1 &&
  34. /*
  35. cosmin
  36. 2025-02-23 11:24:36
  37. simplify these conditions
  38. */
  39. linePos + colPos <= mtSize + 1) ||
  40. (lineDir == 1 && colDir == 0 && linePos + colPos >= mtSize + 1))) {
  41. cout << "if1" << endl;
  42. lineDir = 1;
  43. colDir = -1;
  44. cout<< "lineDir = " << lineDir << " colDir = " << colDir << " direction = " << 1 << endl;
  45. }
  46. if ((linePos + colPos) % 2 == 0 && ((lineDir == 0 && colDir == 1 &&
  47. linePos + colPos >= mtSize + 1) || (lineDir == 1 && colDir == 0 &&
  48. linePos + colPos <= mtSize + 1))) {
  49. cout << "if2" << endl;
  50. lineDir = -1;
  51. colDir = 1;
  52. cout<< "lineDir = " << lineDir << " colDir = " << colDir << " direction = " << 3 << endl;
  53. }
  54. if ((lineDir == 1 && colDir == -1 && linePos + colPos < mtSize + 1 &&
  55. colPos == 1) || (lineDir == -1 && colDir == 1 &&
  56. linePos + colPos >= mtSize + 1 && colPos == mtSize)) {
  57. cout << "if3" << endl;
  58. lineDir = 1;
  59. colDir = 0;
  60. cout<< "lineDir = " << lineDir << " colDir = " << colDir << " direction = " << 2 << endl;
  61. }
  62. if ((lineDir == 1 && colDir == -1 && linePos + colPos >= mtSize + 1 &&
  63. linePos == mtSize) || (lineDir == -1 && colDir == 1 &&
  64. linePos + colPos < mtSize + 1 && linePos == 1)) {
  65. cout << "if4" << endl;
  66. lineDir = 0;
  67. colDir = 1;
  68. cout<< "lineDir = " << lineDir << " colDir = " << colDir << " direction = " << 0 << endl;
  69. }
  70. linePos += lineDir;
  71. colPos += colDir;
  72. cout<< "linePos = " << linePos << " colPos = " << colPos << endl;
  73. //lPlusC = linePos + colPos;
  74. }
  75. return 0;
  76. }
Success #stdin #stdout 0.01s 5288KB
stdin
5
11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55
stdout
11 
linePos = 1 colPos = 2
12 
if1
lineDir = 1 colDir = -1 direction = 1
linePos = 2 colPos = 1
21 
if3
lineDir = 1 colDir = 0 direction = 2
linePos = 3 colPos = 1
31 
if2
lineDir = -1 colDir = 1 direction = 3
linePos = 2 colPos = 2
22 
linePos = 1 colPos = 3
13 
if4
lineDir = 0 colDir = 1 direction = 0
linePos = 1 colPos = 4
14 
if1
lineDir = 1 colDir = -1 direction = 1
linePos = 2 colPos = 3
23 
linePos = 3 colPos = 2
32 
linePos = 4 colPos = 1
41 
if3
lineDir = 1 colDir = 0 direction = 2
linePos = 5 colPos = 1
51 
if2
lineDir = -1 colDir = 1 direction = 3
linePos = 4 colPos = 2
42 
linePos = 3 colPos = 3
33 
linePos = 2 colPos = 4
24 
linePos = 1 colPos = 5
15 
if3
lineDir = 1 colDir = 0 direction = 2
linePos = 2 colPos = 5
25 
if1
lineDir = 1 colDir = -1 direction = 1
linePos = 3 colPos = 4
34 
linePos = 4 colPos = 3
43 
linePos = 5 colPos = 2
52 
if4
lineDir = 0 colDir = 1 direction = 0
linePos = 5 colPos = 3
53 
if2
lineDir = -1 colDir = 1 direction = 3
linePos = 4 colPos = 4
44 
linePos = 3 colPos = 5
35 
if3
lineDir = 1 colDir = 0 direction = 2
linePos = 4 colPos = 5
45 
if1
lineDir = 1 colDir = -1 direction = 1
linePos = 5 colPos = 4
54 
if4
lineDir = 0 colDir = 1 direction = 0
linePos = 5 colPos = 5
55 
if2
lineDir = -1 colDir = 1 direction = 3
if3
lineDir = 1 colDir = 0 direction = 2
linePos = 6 colPos = 5