a53

2017

a53
May 20th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. //Popa Bogdan Ioan, clasa a 10-a, Colegiul National Aurel Vlaicu Orastie
  2. #include <bits/stdc++.h>
  3.  
  4. #define ll long long
  5.  
  6. using namespace std;
  7.  
  8. ifstream fin("2017.in");
  9. ofstream fout("2017.out");
  10.  
  11. int Q;
  12. ll K;
  13. int c;
  14.  
  15. ll getFreq(ll n, int c)
  16. {
  17. ll sol = 0;
  18. ll p10 = 1;
  19. ll k = 0;
  20. while(n >= c)
  21. {
  22. if(n % 10 > c)
  23. sol += (n / 10 + 1) * p10;
  24. else if(n % 10 == c)
  25. sol += (n / 10) * p10 + k + 1;
  26. else sol += (n / 10) * p10;
  27. k += (n % 10) * p10;
  28. n /= 10;
  29. p10 *= 10;
  30. }
  31. return sol;
  32. }
  33.  
  34. ll query(int c, ll K)
  35. {
  36. ll le = 1, ri = 1e13, mid, best;
  37. while(le <= ri)
  38. {
  39. mid = (le + ri) / 2;
  40. if(getFreq(mid, c) >= K)
  41. {
  42. best = mid;
  43. ri = mid - 1;
  44. }
  45. else le = mid + 1;
  46. }
  47. return best;
  48. }
  49.  
  50. int main()
  51. {
  52. for(fin >> Q; Q; Q--)
  53. {
  54. fin >> c >> K;
  55. fout << query(c, K) << "\n";
  56. }
  57. return 0;
  58. }
Add Comment
Please, Sign In to add comment