Submission #527884

# Submission time Handle Problem Language Result Execution time Memory
527884 2022-02-18T15:48:02 Z rainboy 코알라 (JOI13_koala) C
30 / 100
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

koala.c: In function 'main':
koala.c:15:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |  scanf("%d%d%d%d%d", &xl, &xr, &d, &a, &n);
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
koala.c:18:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |   scanf("%d%d", &xx[i], &bb[i]);
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 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 -