summaryrefslogtreecommitdiffstats
path: root/19/cpp
diff options
context:
space:
mode:
Diffstat (limited to '19/cpp')
-rw-r--r--19/cpp/01-1.cpp8
-rw-r--r--19/cpp/01-2.cpp14
-rw-r--r--19/cpp/02-1.cpp47
-rw-r--r--19/cpp/02-2.cpp66
4 files changed, 0 insertions, 135 deletions
diff --git a/19/cpp/01-1.cpp b/19/cpp/01-1.cpp
deleted file mode 100644
index fcb593a..0000000
--- a/19/cpp/01-1.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-#include<iostream>
-
-int main() {
- int mass, sum = 0;
- while (std::cin >> mass) sum += (mass / 3) - 2;
- std::cout << sum << std::endl;
-}
-
diff --git a/19/cpp/01-2.cpp b/19/cpp/01-2.cpp
deleted file mode 100644
index 7ce1a82..0000000
--- a/19/cpp/01-2.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include<iostream>
-
-int getFuel(int mass) {
- int fuel = (mass / 3) - 2;
- if (fuel <= 0) return 0;
- return fuel + getFuel(fuel);
-}
-
-int main() {
- int mass, sum = 0;
- while (std::cin >> mass) sum += getFuel(mass);
- std::cout << sum << std::endl;
-}
-
diff --git a/19/cpp/02-1.cpp b/19/cpp/02-1.cpp
deleted file mode 100644
index b6db056..0000000
--- a/19/cpp/02-1.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#include<fstream>
-#include<iostream>
-#include<vector>
-using namespace std;
-
-int main() {
- ifstream inFile;
- inFile.open("02.in");
-
- vector<int> program;
- int noun, verb;
- // enter noun, verb
- cin >> noun;
- cin >> verb;
-
- // read program
- int n;
- while (inFile >> n) program.push_back(n);
- program[1] = noun;
- program[2] = verb;
- //cout << "Program: " << endl;
- //dump(program);
-
- // copy program to mem
- vector<int> mem(program);
-
- // calculate
- int pointer = 0;
- int op;
- do {
- //cout << "Pointer: " << pointer << endl;
- //cout << "Memory: " << endl;
- //dump(mem);
- op = mem[pointer];
- switch (op) {
- case 1:
- mem[mem[pointer+3]] = mem[mem[pointer+1]] + mem[mem[pointer+2]];
- pointer += 4;
- break;
- case 2:
- mem[mem[pointer+3]] = mem[mem[pointer+1]] * mem[mem[pointer+2]];
- pointer += 4;
- break;
- }
- } while (mem[pointer] != 99);
- cout << mem[0] << endl;
-}
diff --git a/19/cpp/02-2.cpp b/19/cpp/02-2.cpp
deleted file mode 100644
index aab95a8..0000000
--- a/19/cpp/02-2.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-#include<fstream>
-#include<iostream>
-#include<vector>
-#include <chrono>
-using namespace std;
-
-int run(vector<int> prog, int noun, int verb, int pointer, int op) {
- vector<int> mem(prog);
- mem[1] = noun;
- mem[2] = verb;
-
- // calculate
- pointer = 0;
- do {
- //cout << "Pointer: " << pointer << endl;
- //cout << "Memory: " << endl;
- //dump(mem);
- op = mem[pointer];
- switch (op) {
- case 1:
- mem[mem[pointer+3]] = mem[mem[pointer+1]] + mem[mem[pointer+2]];
- pointer += 4;
- break;
- case 2:
- mem[mem[pointer+3]] = mem[mem[pointer+1]] * mem[mem[pointer+2]];
- pointer += 4;
- break;
- }
- } while (mem[pointer] != 99);
- return mem[0];
-}
-
-int main() {
- ifstream inFile;
- inFile.open("02.in");
-
- vector<int> program;
- int noun, verb;
- int pointer;
- int op;
-
- // read program
- int n;
- while (inFile >> n) program.push_back(n);
- //cout << "Program: " << endl;
- //dump(program);
-
- int res;
-
- auto t1 = chrono::high_resolution_clock::now();
-
- for (int n = 0; n < 100; n++) {
- for (int v = 0; v < 100; v++) {
- res = run(program, n, v, pointer, op);
- //cout << n << " " << v << " " << res << endl;
- if (res == 19690720) {
- cout << n << " " << v << endl;
- auto t2 = chrono::high_resolution_clock::now();
- auto duration = chrono::duration_cast<std::chrono::microseconds>( t2 - t1 ).count();
- cout << duration << endl;
- return 0;
- }
- }
- }
- return 1;
-}