parent
702e50d055
commit
fc3cdae817
11 changed files with 409 additions and 2 deletions
@ -0,0 +1,252 @@ |
|||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 1 |
||||||
|
add x 11 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 16 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 1 |
||||||
|
add x 12 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 11 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 1 |
||||||
|
add x 13 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 12 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 26 |
||||||
|
add x -5 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 12 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 26 |
||||||
|
add x -3 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 12 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 1 |
||||||
|
add x 14 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 2 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 1 |
||||||
|
add x 15 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 11 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 26 |
||||||
|
add x -16 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 4 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 1 |
||||||
|
add x 14 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 12 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 1 |
||||||
|
add x 15 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 9 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 26 |
||||||
|
add x -7 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 10 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 26 |
||||||
|
add x -11 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 11 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 26 |
||||||
|
add x -6 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 6 |
||||||
|
mul y x |
||||||
|
add z y |
||||||
|
inp w |
||||||
|
mul x 0 |
||||||
|
add x z |
||||||
|
mod x 26 |
||||||
|
div z 26 |
||||||
|
add x -11 |
||||||
|
eql x w |
||||||
|
eql x 0 |
||||||
|
mul y 0 |
||||||
|
add y 25 |
||||||
|
mul y x |
||||||
|
add y 1 |
||||||
|
mul z y |
||||||
|
mul y 0 |
||||||
|
add y w |
||||||
|
add y 15 |
||||||
|
mul y x |
||||||
|
add z y |
@ -0,0 +1,6 @@ |
|||||||
|
|
||||||
|
#include "Day01.h" |
||||||
|
|
||||||
|
int Day01::run() { |
||||||
|
return 0; |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
|
||||||
|
#ifndef ADVENTOFCODE2022_DAY01_H |
||||||
|
#define ADVENTOFCODE2022_DAY01_H |
||||||
|
|
||||||
|
#include "../Day.h" |
||||||
|
|
||||||
|
class Day01 : public Day { |
||||||
|
public: |
||||||
|
explicit Day01(std::vector<std::string> &input) : Day(input) {} |
||||||
|
int run() override; |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,6 @@ |
|||||||
|
|
||||||
|
#include "Day02.h" |
||||||
|
|
||||||
|
int Day02::run() { |
||||||
|
return 1; |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
|
||||||
|
#ifndef ADVENTOFCODE2022_DAY02_H |
||||||
|
#define ADVENTOFCODE2022_DAY02_H |
||||||
|
|
||||||
|
#include "../Day.h" |
||||||
|
|
||||||
|
class Day02 : public Day { |
||||||
|
public: |
||||||
|
explicit Day02(std::vector<std::string> &input) : Day(input) {} |
||||||
|
int run() override; |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,6 @@ |
|||||||
|
|
||||||
|
#include "Day03.h" |
||||||
|
|
||||||
|
int Day03::run() { |
||||||
|
return 1; |
||||||
|
} |
@ -0,0 +1,14 @@ |
|||||||
|
|
||||||
|
#ifndef ADVENTOFCODE2022_DAY03_H |
||||||
|
#define ADVENTOFCODE2022_DAY03_H |
||||||
|
|
||||||
|
#include "../Day.h" |
||||||
|
|
||||||
|
class Day03 : public Day { |
||||||
|
public: |
||||||
|
explicit Day03(std::vector<std::string> &input) : Day(input) {} |
||||||
|
int run() override; |
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,19 @@ |
|||||||
|
#ifndef ADVENTOFCODE2022_DAY_H |
||||||
|
#define ADVENTOFCODE2022_DAY_H |
||||||
|
|
||||||
|
#include <vector> |
||||||
|
#include <string> |
||||||
|
|
||||||
|
class Day { |
||||||
|
|
||||||
|
protected: |
||||||
|
std::vector<std::string> input; |
||||||
|
|
||||||
|
public: |
||||||
|
explicit Day(std::vector<std::string> &input) : input(input) {} |
||||||
|
virtual int run() { |
||||||
|
return 0; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
#endif |
@ -0,0 +1,27 @@ |
|||||||
|
|
||||||
|
#ifndef ADVENTOFCODE2022_DAYS_H |
||||||
|
#define ADVENTOFCODE2022_DAYS_H |
||||||
|
|
||||||
|
#include "01/Day01.h" |
||||||
|
#include "02/Day02.h" |
||||||
|
#include "03/Day03.h" |
||||||
|
|
||||||
|
Day* getDay(int dayNum, std::vector<std::string> &input){ |
||||||
|
Day* day; |
||||||
|
switch (dayNum){ |
||||||
|
case 1: |
||||||
|
day = new Day01(input); |
||||||
|
break; |
||||||
|
case 2: |
||||||
|
day = new Day02(input); |
||||||
|
break; |
||||||
|
case 3: |
||||||
|
day = new Day03(input); |
||||||
|
break; |
||||||
|
default: |
||||||
|
day = nullptr; |
||||||
|
} |
||||||
|
return day; |
||||||
|
} |
||||||
|
|
||||||
|
#endif |
@ -1,6 +1,49 @@ |
|||||||
#include <iostream> |
#include <iostream> |
||||||
|
#include <string> |
||||||
|
#include <fstream> |
||||||
|
#include <vector> |
||||||
|
#include <filesystem> |
||||||
|
#include "days.h" |
||||||
|
|
||||||
|
std::vector<std::string> getInput(int day){ |
||||||
|
|
||||||
|
char dayStrPadded[3]; |
||||||
|
sprintf(dayStrPadded, "%02u", day); |
||||||
|
std::string localFilePath = "input/" + std::string(dayStrPadded) + "_input.txt"; |
||||||
|
|
||||||
|
if (!std::filesystem::exists({localFilePath})){ |
||||||
|
std::string dayStr = std::to_string(day); |
||||||
|
std::string url = "https://adventofcode.com/2021/day/" + dayStr + "/input"; |
||||||
|
std::string key = "sdfsd"; |
||||||
|
std::string cookie = "session=" + key; |
||||||
|
std::cout << "Input does not exist. Fetching from " + url << std::endl; |
||||||
|
//cpr::Response res = cpr::Get(cpr::Url {url}, cpr::Header{{"Cookie", cookie}});
|
||||||
|
//std::cout << res.text << std::endl;
|
||||||
|
} |
||||||
|
|
||||||
|
std::fstream file; |
||||||
|
file.open(localFilePath, std::ios::in); |
||||||
|
|
||||||
|
std::vector<std::string> result; |
||||||
|
std::string line; |
||||||
|
while (std::getline(file, line)) |
||||||
|
result.push_back(line); |
||||||
|
|
||||||
|
return result; |
||||||
|
} |
||||||
|
|
||||||
|
int main(int argc, char *argv[]) { |
||||||
|
|
||||||
|
for (int i = 1; i < argc; i++){ |
||||||
|
int dayNum = std::stoi(argv[i]); |
||||||
|
std::vector<std::string> input = getInput(dayNum); |
||||||
|
auto day = getDay(dayNum, input); |
||||||
|
int code = day->run(); |
||||||
|
if (code != 0) |
||||||
|
return code; |
||||||
|
} |
||||||
|
|
||||||
int main() { |
|
||||||
std::cout << "Hello, World!" << std::endl; |
|
||||||
return 0; |
return 0; |
||||||
} |
} |
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in new issue