# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1241619 | Jer | Global Warming (CEOI18_glo) | C++20 | 2096 ms | 2632 KiB |
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 5;
int a[MAXN], d[MAXN], s[MAXN];
int n, x;
int maked(int i)
{
if (d[i] != -1)
return d[i];
int res = 1;
for (int j = i + 1; j < n; j++)
if (a[i] < a[j])
res = max(res, maked(j) + 1);
return (d[i] = res);
}
int makes(int i)
{
if (s[i] != -1)
return s[i];
int res = 1;
for (int j = i - 1; j >= 0; j--)
if (a[i] > a[j])
res = max(res, makes(j) + 1);
return (s[i] = res);
}
int main()
{
scanf("%d%d", &n, &x);
for (int i = 0; i < n; i++)
scanf("%d", &a[i]);
fill(d, d + n, -1);
fill(s, s + n, -1);
for (int i = 0; i < n; i++)
maked(i), makes(i);
int res = 0;
for (int i = 0; i < n; i++)
for (int j = i + 1; j < n; j++)
if (a[i] - x < a[j])
res = max(res, s[i] + d[j]);
printf("%d\n", res);
return 0;
}
컴파일 시 표준 에러 (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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |