Cod sursa(job #657870)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 7 ianuarie 2012 16:01:20
Problema Kperm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
using namespace std;
int main()
{
    long long v[7],sol,h;
	int n,k,i,c,r;
    ifstream cin("kperm.in");
    ofstream cout("kperm.out");
    cin>>n>>k;
    if (k%2==0)
    {
        printf("0\n");
        return 0;
    }
    c=n/k;
    r=n%k;
	h=666013;
	v[1]=v[2]=v[3]=v[4]=v[5]=1;
    for (i=2;i<=r;++i)
        v[1]=(v[1]*i)%h;
    for (i=2;i<=k-r;++i)
        v[2]=(v[2]*i)%h;
    for (i=2;i<=c;++i)
        v[3]=(v[3]*i)%h;
    for (i=1;i<=k-r;++i)
        v[4]=(v[4]*v[3])%h;
    v[3]=(v[3]*(c+1))%h;
    for (i=1;i<=r;++i)
        v[5]=(v[5]*v[3])%h;
    sol=(v[1]*v[2])%h;
    sol=(sol*v[4])%h;
    sol=(sol*v[5])%h;
    cout<<sol<<"\n";
    cin.close();
    cout.close();
    return 0;
}