Cod sursa(job #596098)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 15 iunie 2011 21:51:54
Problema Kperm Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <cstdio>

using namespace std;

int main()
{
    long long f1,f2,f3,f4,f5,i,n,k,c,r,sol;
    freopen("kperm.in","r",stdin);
    freopen("kperm.out","w",stdout);
    scanf("%lld %lld\n",&n,&k);
    if (k%2==0)
    {
        printf("0\n");
        return 0;
    }
    c=n/k;
    r=n%k;
    for (f1=1,i=2;i<=r;++i)
        f1=(f1*i)%666013;
    for (f2=1,i=2;i<=k-r;++i)
        f2=(f2*i)%666013;
    for (f3=1,i=2;i<=c;++i)
        f3=(f3*i)%666013;
    for (f4=f3,i=2;i<=k-r;++i)
        f4=(f4*f3)%666013;
    f3=(f3*(c+1))%666013;
    for (f5=f3,i=2;i<=r;++i)
        f5=(f5*f3)%666013;
    sol=(f1*f2)%666013;
    sol=(sol*f4)%666013;
    sol=(sol*f5)%666013;
    printf("%lld\n",sol);
    return 0;
}