Cod sursa(job #2334961)

Utilizator DovlecelBostan Andrei Dovlecel Data 3 februarie 2019 13:37:42
Problema Kperm Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>

using namespace std;
ifstream in("kperm.in");
ofstream out("kperm.out");
const int MOD=666013;
long long n,k,c,r,sol=1;//r!*(k-r)!*(((n/k+1)!)^r)*((n/k)!)^(k-r)

int main()
{
    in>>n>>k;
    if(k%2==0)
    {
        out<<0;
        return 0;
    }
    c=n/k;
    r=n%k;
    for(int i=2;i<=r;i++)//r!
        sol=(sol*i)%MOD;
    for(int i=2;i<=k-r;i++)//(k-r)!
        sol=(sol*i)%MOD;
    long long cop=1;
    for(int i=2;i<=c+1;i++)//(n/k+1)!
        cop=(cop*i)%MOD;
    for(int i=1;i<=r;i++)//^r
        sol=(sol*cop)%MOD;
    cop=1;
    for(int i=2;i<=c;i++)//(n/k)!
        cop=(cop*i)%MOD;
    for(int i=1;i<=k-r;i++)//^(k-r)
        sol=(sol*cop)%MOD;
    out<<sol;
    return 0;
}