2020/sector/prince solution
This commit is contained in:
64
2020/sector/prince.cpp
Normal file
64
2020/sector/prince.cpp
Normal 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;
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 163 KiB |
Reference in New Issue
Block a user