10072 | 2024. 03. 26 11:53:19 | Error42 | Számlexikon | cpp17 | Elfogadva 100/100 | 7ms | 3680 KiB |
#include <cassert>
#include <climits>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
using ll = long long;
void solve() {
// These are swapped everywhere!
ll p, k;
cin >> p >> k;
string const ps = to_string(p);
ll lo = 1;
ll hi = 0;
for (ll i = 0; i < ps.size(); i++) {
hi = hi * 10 + (ps[i] - '0');
k -= hi - lo + 1;
lo *= 10;
}
assert(hi == p);
if (k < 0) {
cout << "0\n";
return;
}
if (k == 0) {
cout << p << "\n";
return;
}
hi--;
while (true) {
hi = hi * 10 + 9;
ll const added = hi - lo + 1;
if (added == 0) {
cout << "0\n";
return;
}
if (added >= k) {
cout << lo - 1 + k << "\n";
return;
}
k -= added;
lo *= 10;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--)
solve();
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 100/100 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1832 KiB | |||
2 | Elfogadva | 0/0 | 7ms | 2172 KiB | |||
3 | Elfogadva | 10/10 | 3ms | 2264 KiB | |||
4 | Elfogadva | 10/10 | 3ms | 2620 KiB | |||
5 | Elfogadva | 10/10 | 3ms | 2572 KiB | |||
6 | Elfogadva | 10/10 | 3ms | 2664 KiB | |||
7 | Elfogadva | 10/10 | 2ms | 2752 KiB | |||
8 | Elfogadva | 10/10 | 3ms | 2964 KiB | |||
9 | Elfogadva | 10/10 | 7ms | 3332 KiB | |||
10 | Elfogadva | 10/10 | 7ms | 3264 KiB | |||
11 | Elfogadva | 10/10 | 7ms | 3392 KiB | |||
12 | Elfogadva | 10/10 | 6ms | 3680 KiB |