Submission #1171462

#TimeUsernameProblemLanguageResultExecution timeMemory
1171462ov113Rabbit Carrot (LMIO19_triusis)C++20
0 / 100
1 ms328 KiB
#include <iostream> #include <stack> using namespace std; int main() { int n, m; cin >> n >> m; int a[n+1]; a[0] = 0; for (int i=1; i<=n; i++) { cin >> a[i]; a[i] -= i*m; } int lmnis[n+1]; // length of minimum non-increasing sequence from [i,n] lmnis[n] = 1; stack<int> first_le; first_le.push(n); for (int i=n-1; i>=0; i--) { while (!first_le.empty() && a[i] < a[first_le.top()]) { first_le.pop(); } if (first_le.empty()) { lmnis[i] = 1; } else{ lmnis[i] = lmnis[first_le.top()] + 1; } first_le.push(i); } cout << (n+1) - lmnis[0] << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...