Cod sursa(job #2258279)
| Utilizator | 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;
}
