This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#define NMAX 200000
#define ll long long
using namespace std;
int n, k;
ll m, v[NMAX+10], dp[NMAX+10];
int binSearch(ll val)
{ int st = 1, dr = k, ans = 0;
while(st <= dr)
{ int mij = (st + dr) / 2;
if(val > dp[mij]) ans = mij, dr = mij - 1;
else st = mij + 1;
}
return ans;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for(int i=1; i<=n; i++)
cin >> v[i];
k = 0;
for(int i=1; i<=n; i++)
{ ll val = v[i] - m * (ll)i;
if(val > 0) continue;
if(val <= dp[k])
{ dp[++k] = val;
continue;
}
int poz = binSearch(val);
dp[poz] = val;
}
cout << n - k << '\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |