# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
527884 | 2022-02-18T15:48:02 Z | rainboy | 코알라 (JOI13_koala) | C | 34 ms | 3732 KB |
#include <stdio.h> #define N 100000 #define SMALL 1000 #define D 100 #define INF 0x3f3f3f3f3f3f3f3fLL long long max(long long a, long long b) { return a > b ? a : b; } int main() { static int xx[N + 2], bb[N + 2]; static long long dp[N + 2], dq[D]; int n, xl, xr, d, a, i, j, r; scanf("%d%d%d%d%d", &xl, &xr, &d, &a, &n); xx[0] = xl; for (i = 1; i <= n; i++) scanf("%d%d", &xx[i], &bb[i]); xx[n + 1] = xr; n += 2; if (n <= SMALL) { dp[0] = 0; for (j = 1; j < n; j++) { dp[j] = -INF; for (i = 0; i < j; i++) dp[j] = max(dp[j], dp[i] - (long long) (xx[j] - xx[i] + d - 1) / d * a + bb[j]); } } else if (d <= D) { for (r = 0; r < d; r++) dq[r] = -INF; for (j = 0; j < n; j++) { if (j == 0) dp[j] = 0; else { dp[j] = -INF; for (r = 0; r < d; r++) dp[j] = max(dp[j], dq[r] - (long long) (xx[j] / d) * a - (r < xx[j] % d ? a : 0)); dp[j] += bb[j]; } dq[xx[j] % d] = max(dq[xx[j] % d], dp[j] + (long long) (xx[j] / d) * a); } } else { printf(":(\n"); return 0; } printf("%lld\n", dp[n - 1]); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 204 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 34 ms | 3732 KB | Output is correct |
2 | Correct | 30 ms | 3364 KB | Output is correct |
3 | Correct | 13 ms | 2452 KB | Output is correct |
4 | Correct | 27 ms | 3616 KB | Output is correct |
5 | Correct | 20 ms | 2388 KB | Output is correct |
6 | Correct | 10 ms | 1408 KB | Output is correct |
7 | Correct | 27 ms | 2708 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 19 ms | 2932 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |