Day 7 Question 2

This commit is contained in:
2025-12-08 22:07:44 +02:00
parent f13d80dd30
commit cffafb102c
3 changed files with 202 additions and 0 deletions

142
Day7/Question2/input Normal file
View File

@@ -0,0 +1,142 @@
......................................................................S......................................................................
.............................................................................................................................................
......................................................................^......................................................................
.............................................................................................................................................
.....................................................................^.^.....................................................................
.............................................................................................................................................
....................................................................^.^.^....................................................................
.............................................................................................................................................
...................................................................^.^.^.^...................................................................
.............................................................................................................................................
..................................................................^.^.^.^.^..................................................................
.............................................................................................................................................
.................................................................^...^...^.^.................................................................
.............................................................................................................................................
................................................................^.^.^...^...^................................................................
.............................................................................................................................................
...............................................................^.....^...^...^...............................................................
.............................................................................................................................................
..............................................................^...^.^.....^.^.^..............................................................
.............................................................................................................................................
.............................................................^.^.^...^.......^.^.............................................................
.............................................................................................................................................
............................................................^...^.^.....^.^.^.^.^............................................................
.............................................................................................................................................
...........................................................^.^.....^.^.....^.^.^.^...........................................................
.............................................................................................................................................
..........................................................^.^...^.^...^.^.^.^.^...^..........................................................
.............................................................................................................................................
.........................................................^...^.^.....^.^.....^.^.^.^.........................................................
.............................................................................................................................................
........................................................^.^.^.......^.^.^.^.^.^.^.^.^........................................................
.............................................................................................................................................
.......................................................^.^.^.....^...^.....^.^.^...^.^.......................................................
.............................................................................................................................................
......................................................^...^.^.^.^.^.^.^.......^.^.^.^.^......................................................
.............................................................................................................................................
.....................................................^.^.^...^...^...^.....^.......^.^.^.....................................................
.............................................................................................................................................
....................................................^...^...^.^.^...^.^.^.^.^...^.^.^...^....................................................
.............................................................................................................................................
...................................................^...^...^.^...^.^...^...^...........^.^...................................................
.............................................................................................................................................
..................................................^.^.^.^.^.......^.^.^.^.^...^.^...^.^.^.^..................................................
.............................................................................................................................................
.................................................^.^.^.^.....^.^.^.......^.^.......^.^.^.^.^.................................................
.............................................................................................................................................
................................................^...^.^.^.^.^.^.^.^.^.^.^.....^...^.^.^...^.^................................................
.............................................................................................................................................
...............................................^.^...^...^.^.^.^...^.^.^.^...^.^.^...^.^.^...^...............................................
.............................................................................................................................................
..............................................^...^.^...^.^.^.....^.^.^.^...^.^.^.^.^...^.....^..............................................
.............................................................................................................................................
.............................................^.....^...^...^.^...^.....^.^.^.^...^.......^.^...^.............................................
.............................................................................................................................................
............................................^.^...^.^.^.^.^.^.^...^.^.^.^.^...^.....^.^.^.^...^.^............................................
.............................................................................................................................................
...........................................^.^.^.^.^.^.......^.^...^.^.^.....^.^.^.......^...^.^.^...........................................
.............................................................................................................................................
..........................................^...^.^.^.^.^.^.^...^.^.....^.^.^.^.....^.^.^.^...^.^.^.^..........................................
.............................................................................................................................................
.........................................^.^...^...^.....^.^...^.^.^.^...^.......^...^...^.^.....^.^.........................................
.............................................................................................................................................
........................................^.^...^.^.^.^...........^.^...^.^.....^...^.^.....^.^...^.^.^........................................
.............................................................................................................................................
.......................................^.^...^.^.^.^.^...^.^.^...^.^.....^.......^.^.^.^.....^.^.....^.......................................
.............................................................................................................................................
......................................^...^.^.^...^.......^...^.^.^...^...^.^.^...^...^.....^...^.^.^.^......................................
.............................................................................................................................................
.....................................^.^.^.^.......^.^...^.^.^.^.^...^.^.....^.^.^.^...^.^.^.^...^.^.^.^.....................................
.............................................................................................................................................
....................................^...^...^.^.^.^.^.....^.^.^.^...^...^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^....................................
.............................................................................................................................................
...................................^.....^.^...^...^.^...^.^...^.^.^.^.......^.^.^.^.^.^.^.^...^.^.^.^.^.^...................................
.............................................................................................................................................
..................................^.^.^...^.^.^...^.^.^...^.^.^.^.^.^.^.^.^.^.^...^.^.^...^...^...^.^.^.^.^..................................
.............................................................................................................................................
.................................^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.....^.^...^...^.^...^.^.^.^...^.................................
.............................................................................................................................................
................................^.^.^.....^.^.....^...^.^.^.^.^.^...^...^.^...^.....^.^.^.^.^.^.^.^.^...^.^.^................................
.............................................................................................................................................
...............................^.^.^.^.....^.^.....^.^.....^.^.....^.....^.^...^.^.....^.^.....^...^.^.^.^.^.^...............................
.............................................................................................................................................
..............................^.^.^.^...^.....^.^.^.........^.^.......^...^...^...^.^.^.^.......^.^.^.^.^.^.^.^..............................
.............................................................................................................................................
.............................^.^.^.....^.^.^.....^.^.^.^...^.....^.^.^.^.^...^.^.^.^.^.^.^...^.^.^.^.......^.^.^.............................
.............................................................................................................................................
............................^...^.^.^.^.^...^.^.....^.^...^...^.^.....^.^...^.^.^.^...^.^.^.^.^.^...^.^...^.^.^.^............................
.............................................................................................................................................
...........................^.....^.^.^.^.^...^.^.^.^.........^.^.^.^.^.^.^.^.^.^.^.^.^.^.....^.^.^.^.^.^.^.^.^.^.^...........................
.............................................................................................................................................
..........................^.^.......^.^.^...^.^.^.^.^...^.^.^...^.^...^.^.^.^...^...^...^.^...^...^.^.^.^.^.^.....^..........................
.............................................................................................................................................
.........................^.^.^...^.^.^...^.^...^.^.^.^.^.^.^.......^.^.^.^...^.^.....^.....^.^.^.^...^.....^.^.^...^.........................
.............................................................................................................................................
........................^.^.....^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^...^.....^...^.^.^.^.^.^.^.....^.^...^.^.^.^........................
.............................................................................................................................................
.......................^.^.^.^...^...^...^.^.^...^.^.^.^.^.....^.^.......^.^...^.^...^.^.^...^...^.^.^...^.^.....^...^.......................
.............................................................................................................................................
......................^.^.........^.....^.^.....^...^...^...^.^.^.^.^.......^.^...^...^.^.^.^.......^.^...^.^.^...^.^.^......................
.............................................................................................................................................
.....................^.^.^...^...^.^...^.^.^...^...^.^.^.^.^.^.^...^...^.^.^.^.....^.^.^...^.^.....^...^...^...^.^.^.^.^.....................
.............................................................................................................................................
....................^.^.^...^.^.^...^.^.^.....^.......^.^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.....^.^.^.^.^.^...^.^.^...^.^.^.^....................
.............................................................................................................................................
...................^.....^.^...^.^...^.^...^.^.....^...^.^.^.......^.^.^.^.^.^.^.^.^...^.^.^.^.^...^.^.^.^...^.^.^.^.^...^...................
.............................................................................................................................................
..................^.^.^.^.^.^.^...^.^.^.^.....^.^.^.^.^.^.^...^.^...^...^...^.^.^.^.......^.^.^.....^.^...^.^.^...^.^...^.^..................
.............................................................................................................................................
.................^...^.^.^.^.^...^.......^.^.^.....^.^...^...^.^.^...^.^...^...^...^...^.^.^...^...^.^...^.^.^.^.^.^.^.^.^.^.................
.............................................................................................................................................
................^.^...^...^.^...^.^.....^.^.^.^.^.^.......^.^.^...^.^.^.^.^.^.^.^.^...........^.^.^.....^.....^.^.^.^.^.^...^................
.............................................................................................................................................
...............^.^.^...^.^.^.^.^.^.........^.^.^.^.^.......^...^.....^...^.^...^.....^...^...^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...............
.............................................................................................................................................
..............^.^.^.^.^.^.^.^.^.^.^.^...^.^...^.^.^.^.^...^.^...^.......^.^...^.^.^...^.....^.^.^...^.^.^.^.^...^.^.^.^.^...^.^..............
.............................................................................................................................................
.............^.^.^.^.^...^.^.^.......^.^.^...^.^.^.^...^.^.^.^...^.....^.^.......^.^.........^.^.^.^.^.....^.^.^.^.^.^.^...^.^.^.............
.............................................................................................................................................
............^...^.^...^.^.^.^.^.^...........^.^.^.^.^.^.^.^.^.^.....^.^.^.^...^.....^.^.......^...^.^...^.....^.^.^...^.^.^...^.^............
.............................................................................................................................................
...........^.^.^.^.^.^.^.....^.^...^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.....^.^.^.^.^.^...^...^.^.^.^...^.^.^.^...^.^.^.^...^.^.^.^.^.^...........
.............................................................................................................................................
..........^...^.^.^.^.^.^...^...^.^...^.^.^.^.^.^...^.^...^.^.^.^.^.^.^.^...^.^.^...^.^.^...^.^.^.^...^...^.^.^.^.^.^...^.^.^.^.^.^..........
.............................................................................................................................................
.........^...^.^...^.....^.^.^...^.......^.^.....^.......^...^...^...^.^.^.^.^.^.^.....^.^.^.....^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.........
.............................................................................................................................................
........^.^...........^...^.......^.^...^.^.^...^.^.^.^...^.^...^.^.^.......^...^.^.^.^.^.^.^.^.^.^.....^...^...^.....^.^.^.^.^.^.^.^........
.............................................................................................................................................
.......^...^...^.^.^...^.^.^.....^.^...^.^.^...^...^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^...^.^...^...^.^.^...^.^.^.^.^.....^...^.^.....^.^.......
.............................................................................................................................................
......^...^.^...^...^...^.^.^...^.^.^.^...^...^.^.^...^.^.....^.^.^...^.....^...^.^...^.......^.^...^.^.....^...^.^.^.^.^.^.^.^.^.^...^......
.............................................................................................................................................
.....^.^.^.^...^.^.....^.^...^.^.......^.^.^.^.^.^.^.^.^.^...^...^.^.^.^.^...^.^.^.^.^.^.^...^.^.^.^.^.^.^.^.^...^.^.^.^.^.^.^...^...^.^.....
.............................................................................................................................................
....^...^...^.^.^.^...^.^.^...^.^.....^.^.^...^.^.^.^...^.^.^.^.^...^.^.^.^.^...^.^.^.^.^.^.......^.^.^.^.^.....^.^.^.^...^.^.^.^.^...^.^....
.............................................................................................................................................
...^.^...^...^.......^...^.^.^...^.^.^.^.^.^.^.^.^.^.^...^.^...^.^.^.^.^...^...^.^...^...^.^.^.^.^.^.^.^.^.....^...^.^...^.^...^.^.^.^...^...
.............................................................................................................................................
..^.^.........^.^.^.^.^.^.^.^.^.^...^.......^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...........^.....^.^.^.^.^.^.^.^.^.^.^.^.^...^.^...^.^..
.............................................................................................................................................
.^.^.^.^.^.....^.^.^.^.^.^.^.^.^.^.....^.^...^.^.^.^.^.^...^.^...^.^.^.^.^...^...^...^...^.^.^.^.^.^...^.^.^.^.^.^.^.^...^.^.^.^.^.^.^.....^.
.............................................................................................................................................

16
Day7/Question2/inputTest Normal file
View File

@@ -0,0 +1,16 @@
.......S.......
...............
.......^.......
...............
......^.^......
...............
.....^.^.^.....
...............
....^.^...^....
...............
...^.^...^.^...
...............
..^...^.....^..
...............
.^.^.^.^.^...^.
...............

44
Day7/Question2/main.cpp Normal file
View File

@@ -0,0 +1,44 @@
#include <algorithm>
#include <cstdint>
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
int main() {
std::fstream input("input");
std::string currentLine = "";
uint16_t lineCount = 0, lengthOfALine = 0;
uint64_t password = 0;
// We are skipping the first line since it only tells us
// where to start with 'S'
std::getline(input, currentLine, '\n');
lengthOfALine = currentLine.length();
std::vector<uint64_t> beams(lengthOfALine, 0);
beams[currentLine.find('S')] = 1;
// Each path the beam went now *sigh*
while (std::getline(input, currentLine, '\n')) {
// Ignore useless middle lines
if (lineCount % 2 == 1) {
for (int16_t position = 0; position < lengthOfALine; position++) {
if (currentLine[position] == '^' && beams[position]) {
// Basically idea is to pass the possible timelines to the split beams
beams[std::max(position - 1, 0)] += beams[position];
beams[std::min(position + 1, static_cast<int>(lengthOfALine))] +=
beams[position];
beams[position] = 0;
}
}
}
lineCount++;
}
// Let's see how many possible timelines were able to reach at the end
for (uint64_t val : beams) {
password += val;
}
std::cout << password << std::endl;
}