fork download
  1. #include <bits/stdc++.h>
  2. #define C make_pair
  3. #define ll long long
  4. #define all(a) a.begin(),a.end()
  5. #define name "task"
  6. #define ln "\n"
  7. using namespace std;
  8. ll n,M;
  9. const int maxn=2*1e5;
  10. ll a[maxn+9];
  11. void solve(){
  12. cin>>n>>M;
  13. for(int i=1;i<=n;++i)
  14. cin>>a[i];
  15. vector<ll> dp;
  16. //memset(dp,0,sizeof(dp));
  17. for(int i=1;i<=n;++i){
  18. if(a[i]<=i*M){
  19. auto it=upper_bound(all(dp),i*M-a[i]);
  20. if(it==dp.end())
  21. dp.push_back(i*M-a[i]);
  22. else
  23. *it=i*M-a[i];
  24. }
  25. }
  26. cout<<n-dp.size();
  27. }
  28. int main(){
  29. ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  30. if(fopen(name".inp","r")){
  31. freopen(name".inp","r",stdin);
  32. freopen(name".out","w",stdout);
  33. }
  34. solve();
  35. }
  36.  
Success #stdin #stdout 0.01s 5300KB
stdin
5 400
300
700
200
1000
500
stdout
1