Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Popa Bogdan Ioan, clasa a 10-a, Colegiul National Aurel Vlaicu Orastie
- #include <bits/stdc++.h>
- #define ll long long
- using namespace std;
- ifstream fin("2017.in");
- ofstream fout("2017.out");
- int Q;
- ll K;
- int c;
- ll getFreq(ll n, int c)
- {
- if(n == 1 && c == 1)
- return 1;
- ll sol = 0;
- ll p10 = 1;
- ll previ = 0;
- while(n > p10)
- {
- if((n / p10) % 10 > c)
- sol += p10 + (n / (p10 * 10)) * p10;
- if((n / p10) % 10 == c)
- sol += 1 + previ + (n / (p10 * 10)) * p10;
- if((n / p10) % 10 < c)
- sol += (n / (p10 * 10)) * p10;
- previ = n % (p10 * 10);
- p10 *= 10;
- }
- return sol;
- }
- ll query(int c, ll K)
- {
- ll le = K / 10 + 1, ri = K * 10, mid, best;
- while(le <= ri)
- {
- mid = (le + ri) / 2;
- if(getFreq(mid, c) >= K)
- {
- best = mid;
- ri = mid - 1;
- }
- else le = mid + 1;
- }
- return best;
- }
- int main()
- {
- for(fin >> Q; Q; Q--)
- {
- fin >> c >> K;
- fout << query(c, K) << "\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement