# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1243874 | lovrot | Financial Report (JOI21_financial) | C++20 | 64 ms | 448 KiB |
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
typedef long long ll;
const int N = 7010;
int a[N], dp[N];
int main() {
int n, d;
scanf("%d%d", &n, &d);
int ans = 0;
for(int i = 0; i < n; ++i) {
scanf("%d", a + i);
dp[i] = 1;
int cnt = 0;
int to = -1;
for(int j = i - 1; cnt < d && j >= 0; --j) {
if(a[j] <= a[i]) {
if((a[j] < a[i]) + dp[j] > dp[i]) { to = j; }
dp[i] = max(dp[i], (a[j] < a[i]) + dp[j]);
cnt = 0;
} else {
cnt ++;
}
}
// printf("%d -> %d\n", i, to);
ans = max(ans, dp[i]);
}
printf("%d\n", ans);
return 0;
}
Compilation message (stderr)
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |