Advertisement
Dang_Quan_10_Tin

PRIMES

May 19th, 2022
622
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.26 KB | None | 0 0
  1. #define task "PRIMES"
  2. #include <iostream>
  3. #include <cstdio>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. using ll = long long;
  9. using ld = long double;
  10.  
  11. constexpr int N = 6e6 + 5;
  12. int n, k;
  13.  
  14. int f[N], prime[N], m;
  15.  
  16. void Read()
  17. {
  18.     cin >> n >> k;
  19. }
  20.  
  21. void Solve()
  22. {
  23.     for (int i = 2; i < N; ++i)
  24.     {
  25.         if (!f[i])
  26.             f[i] = prime[++m] = i;
  27.  
  28.         for (int j = 1; j <= m && prime[j] * i < N; ++j)
  29.             f[prime[j] * i] = prime[j];
  30.     }
  31.  
  32.     string ans;
  33.     ans.reserve(600000);
  34.  
  35.     for (int i = 1; i <= n; ++i)
  36.     {
  37.         string p;
  38.  
  39.         for (int v = prime[i]; v; v /= 10)
  40.             p.push_back(char(v % 10 + '0'));
  41.  
  42.         reverse(p.begin(), p.end());
  43.  
  44.         for (auto j : p)
  45.         {
  46.             while (k > 0 && !ans.empty() && j > ans.back())
  47.             {
  48.                 ans.pop_back();
  49.                 --k;
  50.             }
  51.             ans.push_back(j);
  52.         }
  53.     }
  54.  
  55.     while (k--)
  56.         ans.pop_back();
  57.  
  58.     cout << ans;
  59. }
  60.  
  61. int32_t main()
  62. {
  63.     ios_base::sync_with_stdio(0);
  64.     cin.tie(0);
  65.     cout.tie(0);
  66.  
  67.     if (fopen(task ".INP", "r"))
  68.     {
  69.         freopen(task ".INP", "r", stdin);
  70.         freopen(task ".OUT", "w", stdout);
  71.     }
  72.  
  73.     Read();
  74.     Solve();
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement