Cod sursa(job #2016730)

Utilizator refugiatBoni Daniel Stefan refugiat Data 30 august 2017 10:46:22
Problema Sandokan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>
#define MOD 2000003
using namespace std;
ifstream si("sandokan.in");
ofstream so("sandokan.out");
long long fct[5005];
long long put(long long a,long long n)
{
    long long r=1;
    while(n)
    {
        if(n%2)
            r=(r*a)%MOD;
        n/=2;
        a=(a*a)%MOD;
    }
    return r;
}
long long calc(long long n,long long k)
{
    long long p1,p2;
    p1=fct[n];
    p2=(fct[n-k]*fct[k])%MOD;
    p2=put(p2,MOD-2);
    return (p1*p2)%MOD;
}
int main()
{
    long long n,k;
    si>>n>>k;
    fct[0]=1;
    for(int i=1;i<=n;i++)
        fct[i]=(i*fct[i-1])%MOD;
    so<<calc(n-1,(n-1)%(k-1));
    return 0;
}