diff --git a/2020/sector/prince.cpp b/2020/sector/prince.cpp new file mode 100644 index 0000000..814575d --- /dev/null +++ b/2020/sector/prince.cpp @@ -0,0 +1,64 @@ +#include + +using namespace std; + + +ifstream in("test.in"); +ofstream out("test.out"); + + +void solveLine() { + int64_t val; + in >> val; + + int digits = log10(val) + 1; + + if (digits == 1) { + out << val << endl; + } + + cout << "running for " << val << endl; + for (int i = 0; i < digits / 2; i++) { + // pow needs to be converted from double to int before division to avoid floating-point division bs + int64_t targetPower = pow(10, digits - i - 1); + int64_t left = val / targetPower; + left = left % 10; + + targetPower = pow(10, i); + int64_t right = val / targetPower; + right = right % 10; + + cout << "i: " << i << " left: " << left << " right: " << right << endl; + + if (left > right) { + cout << "Adding " << (left - right) * pow(10, i) << endl; + val += (int)((left - right) * pow(10, i)); + } + else if (left < right) { + cout << "Adding " << ((10 - right) + left) * pow(10, i) << endl; + val += (int)(((10 - right) + left) * pow(10, i)); + } + cout << val << endl; + } + + out << val << endl; +} + + +int main() { + if (!in) { + cerr << "Error opening file" << endl; + return 1; + } + + int n; + in >> n; + + cout << "n: " << n << endl; + for (int i = 0; i < n; i++) { + solveLine(); + } + // solveLine(); + + return 0; +} diff --git a/2020/sector/statement.jpg b/2020/sector/statement_prince.jpg similarity index 100% rename from 2020/sector/statement.jpg rename to 2020/sector/statement_prince.jpg