제출 #545903

#제출 시각아이디문제언어결과실행 시간메모리
545903rainboy캥거루 (CEOI16_kangaroo)C11
100 / 100
14 ms304 KiB
#include <stdio.h>
#include <string.h>

#define N	2000
#define MD	1000000007

int main() {
	static int dp[N], dq[N];
	int n, s, f, i, j, k;

	scanf("%d%d%d", &n, &s, &f), s--, f--;
	dp[0] = 1, k = 0;
	for (i = 0; i < n - 1; i++) {
		memset(dq, 0, n * sizeof *dq);
		if (i == s || i == f) {
			k++;
			for (j = 0; j < n; j++)
				dq[j] = (dp[j] + (j + 1 == n ? 0 : (long long) dp[j + 1] * (j + 1))) % MD;
		} else
			for (j = 0; j < n; j++)
				dq[j] = ((j + 1 == n ? 0 : (long long) dp[j + 1] * (j + 1) * (j + k)) + (j == 0 ? 0 : dp[j - 1])) % MD;
		memcpy(dp, dq, n * sizeof *dq);
	}
	printf("%d\n", dp[0]);
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

kangaroo.c: In function 'main':
kangaroo.c:11:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |  scanf("%d%d%d", &n, &s, &f), s--, f--;
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...