Cod sursa(job #612565)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 8 septembrie 2011 18:53:28
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream.h>
#define lul unsigned long long
#define N 666013
lul n,k,fact[4999],r,c,m,i;

lul put(lul x,lul n)
{lul y=1;
while(n)
       {if(n%2)
               y=(y*x)%N;
       n/=2;
       x=(x*x)%N;}
return y;}


int main()
{ifstream f("kperm.in");
ofstream g("kperm.out");
f>>n>>k;
if(k%2==0)
       g<<"0";
else
       {c=n/k,r=n%k;
       fact[0]=1;
       m=r;
       if(k-r>m)
              m=k-r;
       if(c+1>m)
              m=c+1;
       for(i=1;i<=m;i++)
              fact[i]=(i*fact[i-1])%N;
       g<<((((fact[r]*fact[k-r])%N)*((put(fact[c],k-r)*put(fact[c+1],r))%N))%N);}
return 0;}