Pagini recente » Cod sursa (job #2763028) | Cod sursa (job #2975142) | Cod sursa (job #215234) | Cod sursa (job #440840) | Cod sursa (job #2563681)
#include<bits/stdc++.h>
using namespace std;
ifstream f("permutari2.in");
ofstream g("permutari2.out");
const int mod = 10007;
int n, k, dp[302][302], fact[302];
int ds[302], sum[302];
int main()
{
f >> n >> k;
dp[0][0] = fact[0] = 1;
for(int i = 1; i <= n; ++i)
fact[i] = (fact[i-1] * i) % mod;
for(int i = 1; i <= n; ++i)
{
sum[i] = fact[i];
for(int j = 1; j < i; ++j)
{
sum[i] = sum[i] - ((sum[j] * fact[i - j]) % mod);
if(sum[i] < 0)
sum[i] += mod;
}
}
for(int i = 0; i < n; ++i)
for(int j = 0; j <= i; ++j)
{
int ts = 0;
for(int nxt = i+1; nxt <= n; ++nxt)
{
dp[nxt][j+1] = dp[nxt][j+1] + dp[i][j] * sum[nxt - i];
dp[nxt][j+1] %= mod;
ts = fact[nxt - i];
}
}
int sum = 0;
for(int i = 1; i <= n; ++i)
sum = (sum + dp[n][i]) % mod;
g << dp[n][k];
return 0;
}