제출 #785375

#제출 시각아이디문제언어결과실행 시간메모리
785375iskhakkutbilim캥거루 (CEOI16_kangaroo)C++14
100 / 100
45 ms33192 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define ff first
#define ss second
#define all(a) a.begin(), a.end()
const int mod = 1e9 + 7;


void add_self(int &a, int b){
	a+= b;
	if(a < 0) a+= mod;
	if(a >= mod) a-= mod;
}

int mul(int a, int b){
	return (a * b) % mod;
}
int dp[2100][2100];
main(){
   ios::sync_with_stdio(0);
   cin.tie(0); cout.tie(0);
	int n, a, b; cin >> n >> a >> b;
	dp[1][1] = 1;
	for(int i = 2;i <= n; i++){
		for(int j = 1;j <= n; j++){
			if(i == a || b == i){
				add_self(dp[i][j], dp[i-1][j-1]);
				add_self(dp[i][j], dp[i-1][j]);
			}else{
				add_self(dp[i][j], mul(dp[i-1][j+1], j));
				add_self(dp[i][j], mul(dp[i-1][j-1], j - (i > a) - (i > b)));
			}
		}
	}
	cout << dp[n][1];
	return 0;
}

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

kangaroo.cpp:21:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   21 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...