Cod sursa(job #2258279)

Utilizator danielsociuSociu Daniel danielsociu Data 11 octombrie 2018 09:53:28
Problema Sandokan Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <fstream>
std::ifstream cin("sandokan.in");
std::ofstream cout("sandokan.out");
#define MOD 2000003  //primele 100k prime
long long sol,pnumit=1,pnumar=1;
int n,k,numit,numar;

int main()
{
    int i;
    cin>>n>>k;
    if(n==k||k==0){
        cout<<1;
        return 0;
    }
    if(n/2<k) //=>n-k<k
        numar=k+1, numit=n-k;
    else
        numar=(n-k)+1, numit=k;
    for(;numar<=n;numar++)
        pnumar=((pnumar*numar)%MOD);
    for(i=2;i<=numit;i++)
        pnumit=((pnumit*i)%MOD);
    while(pnumar<pnumit)
        pnumar+=MOD;
    sol=pnumar/pnumit;
    cout<<sol;
}