Submission #74155662
Source Code Expand
Copy
#include <stdio.h>int N, L;int a[114514];int q[114514];int taimu[114514];char yoyaku[114514];int main(void) {int i;int qs = 0, qe = 0;int ans;if (scanf("%d%d", &N, &L) != 2) return 1;for (i = 1; i <= N; i++) {if (scanf("%d", &a[i]) != 1) return 1;}for (i = 1; i <= N; i++) {if (a[i - 1] < a[i] && a[i] > a[i + 1]) {q[qe++] = i;yoyaku[i] = 1;
#include <stdio.h>
int N, L;
int a[114514];
int q[114514];
int taimu[114514];
char yoyaku[114514];
int main(void) {
int i;
int qs = 0, qe = 0;
int ans;
if (scanf("%d%d", &N, &L) != 2) return 1;
for (i = 1; i <= N; i++) {
if (scanf("%d", &a[i]) != 1) return 1;
}
for (i = 1; i <= N; i++) {
if (a[i - 1] < a[i] && a[i] > a[i + 1]) {
q[qe++] = i;
yoyaku[i] = 1;
}
}
while (qs < qe) {
int cur = q[qs++];
int score = taimu[cur - 1];
if (taimu[cur + 1] > score) score = taimu[cur + 1];
score += L - a[cur];
taimu[cur] = score;
if (0 < cur - 1 && !yoyaku[cur - 1] && (a[cur - 2] < a[cur - 1] || yoyaku[cur - 2]) && a[cur - 1] < a[cur]) {
q[qe++] = cur - 1;
yoyaku[cur - 1] = 1;
}
if (cur + 1 <= N && !yoyaku[cur + 1] && a[cur] > a[cur + 1] && (a[cur + 1] > a[cur + 2] || yoyaku[cur + 2])) {
q[qe++] = cur + 1;
yoyaku[cur + 1] = 1;
}
}
ans = 0;
for (i = 1; i <= N; i++) {
if (taimu[i] > ans) ans = taimu[i];
}
printf("%d\n", ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - つらら |
| User | mikecat |
| Language | C23 (GCC 14.2.0) |
| Score | 20 |
| Code Size | 1042 Byte |
| Status | AC |
| Exec Time | 7 ms |
| Memory | 3072 KiB |
Judge Result
| Set Name | set01 | set02 | set03 | set04 | set05 | set06 | set07 | set08 | set09 | set10 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | ||||||||||||||||||||
| Status |
|
|
|
|
|
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| set06 | data6 |
| set07 | data7 |
| set08 | data8 |
| set09 | data9 |
| set10 | data10 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| data1 | AC | 1 ms | 1612 KiB |
| data10 | AC | 3 ms | 2304 KiB |
| data2 | AC | 0 ms | 1740 KiB |
| data3 | AC | 0 ms | 1868 KiB |
| data4 | AC | 7 ms | 3072 KiB |
| data5 | AC | 7 ms | 2912 KiB |
| data6 | AC | 7 ms | 2904 KiB |
| data7 | AC | 7 ms | 2928 KiB |
| data8 | AC | 6 ms | 3072 KiB |
| data9 | AC | 3 ms | 2268 KiB |