aboutsummaryrefslogtreecommitdiff
path: root/2024/src/day04.cpp
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2024-12-04 12:52:13 +0100
committerThomas Schmucker <ts@its1.de>2024-12-04 12:52:13 +0100
commit307db3fd03f53ddc8e13c57586d3fbe393696e60 (patch)
treeaa35da70816f611b0c5aae6fdb2ecce2cdde6d77 /2024/src/day04.cpp
parentea701df2dda12a865e5fe1d17562a13983c2ea69 (diff)
downloadadvent-of-code-307db3fd03f53ddc8e13c57586d3fbe393696e60.tar.gz
advent-of-code-307db3fd03f53ddc8e13c57586d3fbe393696e60.tar.bz2
advent-of-code-307db3fd03f53ddc8e13c57586d3fbe393696e60.zip
kürzer
Diffstat (limited to '2024/src/day04.cpp')
-rw-r--r--2024/src/day04.cpp34
1 files changed, 8 insertions, 26 deletions
diff --git a/2024/src/day04.cpp b/2024/src/day04.cpp
index f586afb..b82e4d6 100644
--- a/2024/src/day04.cpp
+++ b/2024/src/day04.cpp
@@ -57,32 +57,14 @@ part2(map<tuple<size_t, size_t>, char> data, size_t size)
57 long count = 0; 57 long count = 0;
58 for ( size_t y = 0; y != size; ++y ) { 58 for ( size_t y = 0; y != size; ++y ) {
59 for ( size_t x = 0; x != size; ++x ) { 59 for ( size_t x = 0; x != size; ++x ) {
60 if ( data[{ x, y }] == 'A' && 60 string str;
61 data[{ x - 1, y - 1 }] == 'M' && 61 str += data[{ x, y }];
62 data[{ x - 1, y + 1 }] == 'M' && 62 str += data[{ x - 1, y - 1 }];
63 data[{ x + 1, y - 1 }] == 'S' && 63 str += data[{ x - 1, y + 1 }];
64 data[{ x + 1, y + 1 }] == 'S' ) { 64 str += data[{ x + 1, y - 1 }];
65 ++count; 65 str += data[{ x + 1, y + 1 }];
66 } 66
67 if ( data[{ x, y }] == 'A' && 67 if ( str == "AMMSS" || str == "ASMSM" || str == "ASSMM" || str == "AMSMS" ) {
68 data[{ x - 1, y - 1 }] == 'S' &&
69 data[{ x - 1, y + 1 }] == 'M' &&
70 data[{ x + 1, y - 1 }] == 'S' &&
71 data[{ x + 1, y + 1 }] == 'M' ) {
72 ++count;
73 }
74 if ( data[{ x, y }] == 'A' &&
75 data[{ x - 1, y - 1 }] == 'S' &&
76 data[{ x - 1, y + 1 }] == 'S' &&
77 data[{ x + 1, y - 1 }] == 'M' &&
78 data[{ x + 1, y + 1 }] == 'M' ) {
79 ++count;
80 }
81 if ( data[{ x, y }] == 'A' &&
82 data[{ x - 1, y - 1 }] == 'M' &&
83 data[{ x - 1, y + 1 }] == 'S' &&
84 data[{ x + 1, y - 1 }] == 'M' &&
85 data[{ x + 1, y + 1 }] == 'S' ) {
86 ++count; 68 ++count;
87 } 69 }
88 } 70 }