diff options
Diffstat (limited to 'day07/day07.cpp')
-rw-r--r-- | day07/day07.cpp | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/day07/day07.cpp b/day07/day07.cpp deleted file mode 100644 index f9bbd1a..0000000 --- a/day07/day07.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include <iostream> -#include <fstream> -#include <string> -#include <vector> - -#include "../utils.h" - -long sumdist (std::vector<int> pos, int pole, int inc) { - long sd = 0; - for (auto p : pos) { - int n = abs(p-pole); - if (inc == 1) n = (n * (n+1)) / 2; - sd += n; - } - return sd; -} - -int main (int argc, char *argv[]) { - std::string raw; - std::getline(std::ifstream(argv[1]), raw, '\0'); - std::vector<std::string> vec; - split(vec, raw, ","); - std::vector<int> pos; - for (auto s : vec) pos.push_back(std::stoi(s)); - - int minp = 10000, maxp = -10000; - for (auto p : pos) { - minp = std::min(minp, p); - maxp = std::max(maxp, p); - } - int inc = argc > 2 ? atoi(argv[2]) : 0; - long fuel = 100000000000; - for (int i=minp; i<maxp; i++) { - fuel = std::min(fuel, sumdist(pos, i, inc)); - } - - std::cout << "fuel: " << fuel << std::endl; - - return 0; -} |