Cod sursa(job #2098120)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 2 ianuarie 2018 13:49:52
Problema Sandokan Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>
#include <iostream>
#define MOD 2000003
using namespace std;
long long putere (long long x,int p){
    long long r=1;
    while (p){
        if (p%2)
            r=(r*x)%MOD;
        x=(x*x)%MOD;
        p/=2;
    }
    return r;
}
int main()
{
    FILE *fin=fopen ("sandokan.in","r");
    FILE *fout=fopen ("sandokan.out","w");
    int n,k,i,rmn;
    long long sol,fact;
    fscanf (fin,"%d%d",&n,&k);
    rmn= n % (k-1);
    if (!rmn)
        rmn=k-1;
    // combinari de n-1 luate cate rmn-1
    sol=1;
    for (i=1;i<=n-1;i++)
        sol=(sol*i)%MOD;
    fact=1;
    for (i=1;i<=rmn-1;i++)
        fact=(fact*i)%MOD;
    sol=(sol*putere (fact, MOD-2))%MOD;
    fact=1;
    for (i=1;i<=n-1-rmn+1;i++)
        fact=(fact*i)%MOD;
    sol=(sol*putere (fact, MOD-2))%MOD;
    fprintf (fout,"%lld",sol);
    return 0;
}