Pagini recente » Cod sursa (job #1171946) | Cod sursa (job #1486031) | Cod sursa (job #1557515) | Cod sursa (job #2083984) | Cod sursa (job #3240619)
#include <iostream>
#include <fstream>
#define int unsigned long long
#define mod 2000003
int fact[5001], v[5001];
int lgpow(int a, int b)
{
int rez = 1;
while(b > 0)
{
if(b & 1)
{
rez = rez * a % mod;
}
a = a * a % mod;
b >>= 1;
}
return rez;
}
int combinari(int n, int k)
{
return fact[n] * lgpow(fact[k] * fact[n - k] % mod, mod - 2) % mod;
}
using namespace std;
signed main()
{
ifstream cin("sandokan.in");
ofstream cout("sandokan.out");
int n, k, i, rez = 1;
cin >> n >> k;
for(i = 1; i <= n; i++)
{
cin >> v[i];
}
fact[0] = 1;
for(i = 1; i <= n; i++)
{
fact[i] = i * fact[i - 1] % mod;
}
while(n >= k)
{
rez = rez * combinari(n, k) % mod;
n -= (k - 1);
}
cout << rez;
return 0;
}