Pagini recente » Cod sursa (job #1380613) | Cod sursa (job #115118) | Cod sursa (job #1992075) | Cod sursa (job #368525) | Cod sursa (job #3249216)
#include <iostream>
using namespace std;
long long mod = 9901;
long long combinatorica(long long n, long long k);
long long inv_mod(long long a, long long n);
int main()
{
long long n, k, a, ans=1;
cin >> n >> k;
for (int i=0; i<n; i++)
{
cin >> a;
}
ans = combinatorica(n, k);
ans %= mod;
cout << ans << '\n';
return 0;
}
long long combinatorica (long long n, long long k)
{
long long nfact=1, kfact=1, nkfact=1, ans=1;
for (int i=2; i<=n; i++)
{
nfact *= i;
nfact %= mod;
}
for (int i=2; i<=k; i++)
{
kfact *= i;
kfact %= mod;
}
for (int i=2; i<=n-k; i++)
{
nkfact *= i;
nkfact %= mod;
}
kfact = inv_mod(kfact, mod-2);
nkfact = inv_mod(nkfact, mod-2);
ans *= kfact * nfact; ans %= mod; ans *= nkfact; ans %= mod;
return ans;
}
long long inv_mod (long long a, long long n)
{
int rez=1;
while (n)
{
if (n % 2 == 1)
{
rez *= a;
rez %= mod;
}
a *= a; a %= mod;
n /= 2;
}
return rez;
}