2020/sector/prince solution

This commit is contained in:
2025-04-23 01:04:20 +03:00
parent 9b1df60993
commit 332f8a5ded
2 changed files with 64 additions and 0 deletions

64
2020/sector/prince.cpp Normal file
View File

@@ -0,0 +1,64 @@
#include <bits/stdc++.h>
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;
}

View File

Before

Width:  |  Height:  |  Size: 163 KiB

After

Width:  |  Height:  |  Size: 163 KiB