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] << " ";
  27. cout << endl;
  28. //int lPlusC = linePos + colPos;
  29. /*
  30. cosmin
  31. 2025-02-23 11:24:30
  32. get rid of this variable -> solved
  33. */
  34. if ((linePos + colPos) % 2 && ((lineDir == 0 && colDir == 1 &&
  35. /*
  36. cosmin
  37. 2025-02-23 11:24:36
  38. simplify these conditions
  39. */
  40. linePos + colPos <= mtSize + 1) ||
  41. (lineDir == 1 && colDir == 0 && linePos + colPos >= mtSize + 1))) {
  42. //if1
  43. lineDir = 1;
  44. colDir = -1;
  45. cout << "if1" << endl;
  46. cout << "lineDir = " << lineDir << " colDir = " << colDir << endl;
  47. }
  48. if ((linePos + colPos) % 2 == 0 && ((lineDir == 0 && colDir == 1 &&
  49. linePos + colPos >= mtSize + 1) || (lineDir == 1 && colDir == 0 &&
  50. linePos + colPos <= mtSize + 1))) {
  51. //if2
  52. lineDir = -1;
  53. colDir = 1;
  54. cout << "if2" << endl;
  55. cout << "lineDir = " << lineDir << " colDir = " << colDir << endl;
  56. }
  57. if ((lineDir == 1 && colDir == -1 && linePos + colPos < mtSize + 1 &&
  58. colPos == 1) || (lineDir == -1 && colDir == 1 &&
  59. linePos + colPos >= mtSize + 1 && colPos == mtSize)) {
  60. //if3
  61. lineDir = 1;
  62. colDir = 0;
  63. cout << "if3" << endl;
  64. cout << "lineDir = " << lineDir << " colDir = " << colDir << endl;
  65. }
  66. if ((lineDir == 1 && colDir == -1 && linePos + colPos >= mtSize + 1 &&
  67. linePos == mtSize) || (lineDir == -1 && colDir == 1 &&
  68. linePos + colPos < mtSize + 1 && linePos == 1 )) {
  69. //if4
  70. lineDir = 0;
  71. colDir = 1;
  72. cout << "if4" << endl;
  73. cout << "lineDir = " << lineDir << " colDir = " << colDir << endl;
  74. }
  75. linePos += lineDir;
  76. colPos += colDir;
  77. //lPlusC = linePos + colPos;
  78. }
  79. return 0;
  80. }
Success #stdin #stdout 0s 5292KB
stdin
3
11 12 13
21 22 23
31 32 33
stdout
11 
12 
if1
lineDir = 1 colDir = -1
21 
if3
lineDir = 1 colDir = 0
31 
if2
lineDir = -1 colDir = 1
22 
13 
if3
lineDir = 1 colDir = 0
23 
if1
lineDir = 1 colDir = -1
32 
if4
lineDir = 0 colDir = 1
33 
if2
lineDir = -1 colDir = 1
if3
lineDir = 1 colDir = 0