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. //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. //if1
  42. lineDir = 1;
  43. colDir = -1;
  44. }
  45. if ((linePos + colPos) % 2 == 0 && ((lineDir == 0 && colDir == 1 &&
  46. linePos + colPos >= mtSize + 1) || (lineDir == 1 && colDir == 0 &&
  47. linePos + colPos <= mtSize + 1))) {
  48. lineDir = -1;
  49. colDir = 1;
  50. }
  51. if ((lineDir == 1 && colDir == -1 && linePos + colPos < mtSize + 1 &&
  52. colPos == 1) || (lineDir == -1 && colDir == 1 &&
  53. linePos + colPos >= mtSize + 1 && colPos == mtSize)) {
  54. lineDir = 1;
  55. colDir = 0;
  56. }
  57. if ((lineDir == 1 && colDir == -1 && linePos + colPos >= mtSize + 1 &&
  58. linePos == mtSize) || (lineDir == -1 && colDir == 1 &&
  59. linePos + colPos < mtSize + 1 && linePos == 1 )) {
  60. lineDir = 0;
  61. colDir = 1;
  62. }
  63. linePos += lineDir;
  64. colPos += colDir;
  65. //lPlusC = linePos + colPos;
  66. }
  67. return 0;
  68. }
Success #stdin #stdout 0.01s 5248KB
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 12 21 31 22 13 14 23 32 41 51 42 33 24 15 25 34 43 52 53 44 35 45 54 55