Advertisement
a53

2017

a53
Mar 23rd, 2017
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 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. if(n == 1 && c == 1)
  18. return 1;
  19. ll sol = 0;
  20. ll p10 = 1;
  21. ll previ = 0;
  22. while(n > p10)
  23. {
  24. if((n / p10) % 10 > c)
  25. sol += p10 + (n / (p10 * 10)) * p10;
  26. if((n / p10) % 10 == c)
  27. sol += 1 + previ + (n / (p10 * 10)) * p10;
  28. if((n / p10) % 10 < c)
  29. sol += (n / (p10 * 10)) * p10;
  30. previ = n % (p10 * 10);
  31. p10 *= 10;
  32. }
  33. return sol;
  34. }
  35.  
  36. ll query(int c, ll K)
  37. {
  38. ll le = K / 10 + 1, ri = K * 10, mid, best;
  39. while(le <= ri)
  40. {
  41. mid = (le + ri) / 2;
  42. if(getFreq(mid, c) >= K)
  43. {
  44. best = mid;
  45. ri = mid - 1;
  46. }
  47. else le = mid + 1;
  48. }
  49. return best;
  50. }
  51.  
  52. int main()
  53. {
  54.  
  55. for(fin >> Q; Q; Q--)
  56. {
  57. fin >> c >> K;
  58. fout << query(c, K) << "\n";
  59. }
  60. return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement