Cod sursa(job #1674218)

Utilizator GinguIonutGinguIonut GinguIonut Data 4 aprilie 2016 15:04:43
Problema Sandokan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

#define MOD 2000003
using namespace std;
ifstream fin("sandokan.in");
ofstream fout("sandokan.out");
int n, k;
long long lg_power(long long nr, long long exp)
{
    if(exp==0)
        return 1;

    if(exp%2==0)
    {
        long long half=lg_power(nr, exp/2);
        return (half*half)%MOD;
    }
    else
        return (lg_power(nr, exp-1)*nr)%MOD;
}
long long comb(int a, int b)
{
    long long nr=1, div1, div2;
    if(b==0)
        return 1;

    for(int i=1;i<=a;i++)
    {
        nr=nr*i;
        nr=nr%MOD;

        if(i==b)
            div1=lg_power(nr, MOD-2);

        if(i==a-b)
            div2=lg_power(nr, MOD-2);
    }

    return (1LL*nr*div1*div2)%MOD;
}
int main()
{
    fin>>n>>k;
    fout<<comb((n-1), (n-1)%(k-1));
    return 0;
}