Submission #56853

#TimeUsernameProblemLanguageResultExecution timeMemory
56853ksun48Asceticism (JOI18_asceticism)C++14
49 / 100
14 ms7800 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;

const LL MOD = 1000000007;

int main(){
	int n, k;
	cin >> n >> k;
	n--;
	k--;
	LL dp[n+1][n+1];
	for(LL i = 0; i <= n; i++){
		for(LL j = 0; j <= i; j++){
			dp[i][j] = 0;
			if(i == 0 && j == 0){
				dp[i][j] = 1;
			}
			if(i > 0){
				if(j > 0){
					dp[i][j] += dp[i-1][j-1] * (i+1-j);
				}
				if(j < i){
					dp[i][j] += dp[i-1][j] * (j+1);
				}
			}
			dp[i][j] %= MOD;
		}
	}
	cout << dp[n][k] << '\n';

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...