+day04 part2

This commit is contained in:
Naomi Amethyst 2024-12-20 05:27:53 +00:00
parent 0ab0008b68
commit 3e3ba0fa3e
Signed by: naomi
GPG key ID: 89CA5D5A1F99F982

35
2024/day04/part2.cc Normal file
View file

@ -0,0 +1,35 @@
#include <iostream>
#include <string>
bool is_xmas(const char upper_left, const char upper_right,
const char center, const char lower_left, const char lower_right) {
if (center != 'A') {
return false;
}
return upper_left == 'M' && upper_right == 'M' && lower_left == 'S' && lower_right == 'S'
|| upper_left == 'M' && upper_right == 'S' && lower_left == 'M' && lower_right == 'S'
|| upper_left == 'S' && upper_right == 'M' && lower_left == 'S' && lower_right == 'M'
|| upper_left == 'S' && upper_right == 'S' && lower_left == 'M' && lower_right == 'M';
}
int main() {
std::string line[3];
int count = 0;
int line_number = 0;
while (std::getline(std::cin, line[++line_number % 3])) {
if (line_number < 3) {
continue;
}
for (int index = 1; index < line[(line_number - 1) % 3].size() - 1; index++) {
if (is_xmas(
line[(line_number - 2) % 3][index - 1], line[(line_number - 2) % 3][index + 1],
line[(line_number - 1) % 3][index],
line[line_number % 3][index - 1], line[line_number % 3][index + 1]
)) {
count++;
}
}
}
std::cout << count << std::endl;
return EXIT_SUCCESS;
}