Cod sursa(job #612146)

Utilizator crushackPopescu Silviu crushack Data 6 septembrie 2011 06:52:01
Problema Kperm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <stdio.h>
#define NMax 5010

const char IN[]="kperm.in",OUT[]="kperm.out";
const int mod=666013;

int N,K;
int P[NMax];

void init(){
    P[0]=1;
    for (int i=1;i<=N;++i) P[i]=1LL*P[i-1]*i%mod;
}

int main()
{
    int i,c,d;
    freopen(IN,"r",stdin);
    scanf("%d%d",&N,&K);
    fclose(stdin);

    init();c= N/K+1; d= N%K ;
    int r= P[d];

    for (i=0;i<d;++i)
        r= (1LL*r*P[c])%mod;
    r=1LL*r*P[K-d]%mod;
    for (;i<K;++i)
        r= (1LL*r*P[c-1])%mod;

    freopen(OUT,"w",stdout);
    printf("%d\n",r);
    fclose(stdout);
    return 0;
}