Cod sursa(job #362524)
| Utilizator | Data | 9 noiembrie 2009 22:19:06 | |
|---|---|---|---|
| Problema | Kperm | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.46 kb |
#include <cstdio>
#define X 666013
#define ll long long
int fact(int x)
{
int i;
for (i=x-1; i>1; i--) x=x*i%X;
return x;
}
int put (int x, int c)
{
int i, p=1;
for (i=1; i<=c; i++) p=(ll)p*x%X;
return p;
}
int main()
{
freopen("kperm.in","r",stdin);
freopen("kperm.out","w",stdout);
int n, k, r, c;
ll p;
scanf("%d %d",&n,&k);
r=n%k;
c=n/k;
p=fact(r);
p=p*fact(k-r)%X;
p=p*put(c+1,r)%X;
p=p*put(c,k-r)%X;
printf("%d",p);
}