Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4982

Teaching and learning resources • Re: Advent of Code 2024

$
0
0
Day 2

Code:

pi@pi5-8:~/AoC2024/day02 $ g++ -O3 day02.cpp pi@pi5-8:~/AoC2024/day02 $ ./a.out Day 2: Red-Nosed Reportspart 1   - 585part 2   - 626run time - 1.656 ms.pi@pi5-8:~/AoC2024/day02 $ cat day02.cpp #include <chrono>#include <fstream>#include <iostream>#include <sstream>#include <string>#include <vector>using namespace std;using namespace chrono;static bool safe(vector<int>& levels) {    bool ascending(levels[1] > levels[0]);    for (int i = 1; i < levels.size(); i++) {        int dif = levels[i - 1] - levels[i];        if ((dif == 0) || (abs(dif) > 3)) return false;        if (ascending) {            if (levels[i - 1] > levels[i]) return false;        } else if (levels[i - 1] < levels[i])            return false;    }    return true;}static bool safe2(vector<int>& levels) {    for (int i = 0; i < levels.size(); i++) {        vector<int> l(levels);        l.erase(l.begin() + i);        if (safe(l)) return true;    }    return false;}int main() {    auto start = high_resolution_clock::now();    ifstream fi("day02.txt");    string line;    int part1(0), part2(0);    while (getline(fi, line)) {        stringstream ssline(line);        vector<int> levels;        int level;        while (ssline >> level) levels.push_back(level);        if (safe(levels)) {            part1++;            part2++;        } else if (safe2(levels))            part2++;    }    cout << "Day 2: Red-Nosed Reports" << endl         << "part 1   - " << part1 << endl         << "part 2   - " << part2 << endl         << "run time - "         << duration_cast<microseconds>(high_resolution_clock::now() - start).count() / 1000.0         << " ms." << endl;}pi@pi5-8:~/AoC2024/day02 $ 

Statistics: Posted by lurk101 — Mon Dec 02, 2024 4:31 pm



Viewing all articles
Browse latest Browse all 4982

Trending Articles