diff --git a/src/days/10/Day10.cpp b/src/days/10/Day10.cpp index 8801a58..a8343d9 100644 --- a/src/days/10/Day10.cpp +++ b/src/days/10/Day10.cpp @@ -1,9 +1,52 @@ #include "Day10.h" Result Day10::Task1() { - return Day::Task1(); + int sum = 0; + int R = 1; + int cycle = 1; + for (const string &line : input){ + int count = 1; + int add = 0; + if (line.starts_with("addx")){ + add = stoi(line.substr(5)); + count = 2; + } + for (int i = 0; i < count; i++){ + if ((cycle - 20) % 40 == 0){ + sum += cycle * R; + } + cycle++; + } + R += add; + } + + return to_string(sum); } Result Day10::Task2() { - return Day::Task2(); + string image = "\n"; + int R = 1; + int cycle = 0; + for (const string &line : input){ + int count = 1; + int add = 0; + if (line.starts_with("addx")){ + add = stoi(line.substr(5)); + count = 2; + } + for (int i = 0; i < count; i++) { + char pixel = '.'; + int y = cycle / 40; + int x = cycle - (y * 40); + if (x == R || x == R - 1 || x == R + 1) + pixel = '#'; + image += pixel; + cycle++; + if (cycle % 40 == 0) + image += "\n"; + } + R += add; + } + + return image; } \ No newline at end of file