Submission #423435

#TimeUsernameProblemLanguageResultExecution timeMemory
423435qwerasdfzxclFinancial Report (JOI21_financial)C++14
48 / 100
4043 ms2088 KiB
#include <bits/stdc++.h>

typedef long long ll;
using namespace std;
int a[300300], dp[300300];

int main(){
    int n, k;
    scanf("%d %d", &n, &k);
    for (int i=0;i<n;i++) scanf("%d", a+i);
    int ans = 1;
    for (int i=n-1;i>=0;i--){
        int j = i+1, mx = 0, idx = i;
        while(j<n){
            int nxt = idx;
            for (;j<n && j<=idx+k;j++){
                if (a[j]>a[i]) mx = max(mx, dp[j]);
                else nxt = j;
            }
            if (nxt==idx) break;
            idx = nxt;
        }
        dp[i] = mx+1;
        ans = max(ans, dp[i]);
    }
    printf("%d\n", ans);
    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:9:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |     scanf("%d %d", &n, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~~
Main.cpp:10:32: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     for (int i=0;i<n;i++) scanf("%d", a+i);
      |                           ~~~~~^~~~~~~~~~~
#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...