Cod sursa(job #754273)

Utilizator GrimpowRadu Andrei Grimpow Data 1 iunie 2012 12:19:24
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
#define Nm 5001
#define Mod 666013
int n,k;

void read()
{
    freopen("kperm.in","r",stdin);
    scanf("%d%d",&n,&k);
}

int solve()
{
    int F[Nm],i,a,b,sol;

    if(k%2==0)
        return 0;

    F[0]=1;
    for(i=1;i<=n;++i)
        F[i]=F[i-1]*(long long)i%Mod;
    a=n%k; b=k-a;
    sol=(long long)F[a]*F[b]%Mod;
    for(i=0;i<a;++i)
        sol=(long long)sol*F[n/k+1]%Mod;
    for(i=0;i<b;++i)
        sol=(long long)sol*F[n/k]%Mod;
    return sol;
}

void write(int sol)
{
    freopen("kperm.out","w",stdout);
    printf("%d\n",sol);
}

int main()
{
    read();
    write(solve());
    return 0;
}