Cod sursa(job #596323)
Utilizator | cont cu nume gresit sau fals Magnus | Data | 16 iunie 2011 20:24:39 |
---|---|---|---|
Problema | Sandokan | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.49 kb |
#include <cstdio>
using namespace std;
int main()
{
long long n,k,p,i,sol,aux;
freopen("sandokan.in","r",stdin);
freopen("sandokan.out","w",stdout);
scanf("%lld %lld",&n,&k);
p=n%(k-1);
if (!p)
p=k-1;
--n;
--p;
for (sol=1,i=n-p+1;i<=n;++i)
sol=(sol*i)%2000003;
for (aux=1,i=2;i<=p;++i)
aux=(aux*i)%2000003;
for (i=1;i<=2000001;++i)
sol=(sol*aux)%2000003;
printf("%lld\n",sol);
return 0;
}