Advertisement
Tkap1

Untitled

Dec 4th, 2024 (edited)
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. // The size of the "square" (how many lines/how long are the lines)
  2. constexpr int n = 140;
  3.  
  4. // Split input into lines
  5. char lines[n][n+1] = zero;
  6. for(int i = 0; i < n; i += 1) {
  7.     memcpy(&lines[i][0], text + i * (n + 1), n);
  8. }
  9.  
  10. s64 result = 0;
  11.  
  12. for(int i = 0; i < n; i += 1) {
  13.     for(int j = 0; j < n; j += 1) {
  14.         // right
  15.         if(
  16.             j < n - 3 &&
  17.             (
  18.                 lines[i][j + 0] == 'X' && lines[i][j + 1] == 'M' && lines[i][j + 2] == 'A' && lines[i][j + 3] == 'S' ||
  19.                 lines[i][j + 0] == 'S' && lines[i][j + 1] == 'A' && lines[i][j + 2] == 'M' && lines[i][j + 3] == 'X'
  20.             )
  21.         ) {
  22.             result += 1;
  23.         }
  24.         // down
  25.         if(
  26.             i < n - 3 &&
  27.             (
  28.                 lines[i + 0][j] == 'X' && lines[i + 1][j] == 'M' && lines[i + 2][j] == 'A' && lines[i + 3][j] == 'S' ||
  29.                 lines[i + 0][j] == 'S' && lines[i + 1][j] == 'A' && lines[i + 2][j] == 'M' && lines[i + 3][j] == 'X'
  30.             )
  31.         ) {
  32.             result += 1;
  33.         }
  34.         // bottom right
  35.         if(
  36.             i < n - 3 && j < n - 3 &&
  37.             (
  38.                 lines[i + 0][j + 0] == 'X' && lines[i + 1][j + 1] == 'M' && lines[i + 2][j + 2] == 'A' && lines[i + 3][j + 3] == 'S' ||
  39.                 lines[i + 0][j + 0] ==  'S' && lines[i + 1][j + 1] == 'A' && lines[i + 2][j + 2] == 'M' && lines[i + 3][j + 3] == 'X'
  40.             )
  41.         ) {
  42.             result += 1;
  43.         }
  44.         // bottom left
  45.         if(
  46.             i < n - 3 && j >= 3 &&
  47.             (
  48.                 lines[i + 0][j - 0] == 'X' && lines[i + 1][j - 1] == 'M' && lines[i + 2][j - 2] == 'A' && lines[i + 3][j - 3] == 'S' ||
  49.                 lines[i + 0][j - 0] == 'S' && lines[i + 1][j - 1] == 'A' && lines[i + 2][j - 2] == 'M' && lines[i + 3][j - 3] == 'X'
  50.             )
  51.         ) {
  52.             result += 1;
  53.         }
  54.     }
  55. }
  56.  
  57. printf("%lli\n", result);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement