ProgMe

Untitled

Feb 13th, 2021
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define int int64_t
  4.  
  5. using namespace std;
  6.  
  7. const int N = 10000001;
  8. bool primes[N];
  9. int pref[N];
  10.  
  11. int get(int l, int r){
  12. if(l == 1)
  13. return pref[r];
  14. return pref[r] - pref[l - 1];
  15. }
  16.  
  17. int f(int x, int l){
  18. return get(x, x + l - 1);
  19. }
  20.  
  21. void count(){
  22. for (int i = 2; i <= N; i++)
  23. primes[i] = true;
  24. for (int i = 2; i <= N; i++)
  25. if (primes[i])
  26. for (int j = i * i; j <= N; j += i)
  27. primes[j] = false;
  28. pref[1] = 0;
  29. for(int i = 2; i <= N; i++)
  30. pref[i] = pref[i - 1] + primes[i];
  31. }
  32.  
  33. void solve(){
  34. int q, l, k;
  35. cin >> q >> l >> k;
  36. count();
  37. while(q--){
  38. int tl, tr;
  39. tl = 2;
  40. tr = 10'000'000 - l;
  41. if(k > f(tl, l) || f(tr, l) > k)
  42. cout << "-1\n";
  43. else{
  44. while(tr - tl > 1){
  45. int tm = (tl + tr) / 2;
  46. if(f(tm, l) >= k)
  47. tl = tm;
  48. else
  49. tr = tm - 1;
  50. }
  51. cout << tl << ' ' << tl + l - 1 << '\n';
  52. }
  53. }
  54. }
  55.  
  56. int32_t main() {
  57. int test_case = 1;
  58. //cin >> test_case;
  59. while(test_case--)
  60. solve();
  61. }
Advertisement
Add Comment
Please, Sign In to add comment