Submission #1336580

#TimeUsernameProblemLanguageResultExecution timeMemory
1336580sh_qaxxorov_571Financial Report (JOI21_financial)C++20
0 / 100
27 ms5088 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int N, D;
    cin >> N >> D;
    vector<long long> A(N+1);
    for(int i=1;i<=N;i++) cin >> A[i];
    vector<long long> dp(N+1, -1e18);
    deque<int> dq;
    dp[1] = 1;
    dq.push_back(1);
    for(int i=2;i<=N;i++) {
        while(!dq.empty() && dq.front() < i-D)
            dq.pop_front();
        long long best = -1e18;
        for(auto j : dq) {
            long long add = (A[i] > A[j]) ? 1 : 0;
            best = max(best, dp[j] + add);
        }
        dp[i] = best;
        while(!dq.empty() && A[dq.back()] <= A[i])
            dq.pop_back();
        dq.push_back(i);
    }
    cout << dp[N] << "\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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...