Cod sursa(job #1693090)

Utilizator armandpredaPreda Armand armandpreda Data 22 aprilie 2016 13:13:57
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include <fstream>

using namespace std;

ifstream cin("kperm.in");
ofstream cout("kperm.out");

const int LIM=5005, MOD=666013;
int n, k;
long long fact[LIM], ans;
int main()
{
    cin>>n>>k;
    fact[0]=1;
    for(int i=1; i<=n; ++i)
        fact[i]=(fact[i-1]*i)%MOD;
    int rest=n%k;
    if(k&1)
    {
        ans=(fact[rest]*fact[k-rest])%MOD;
        for(int i=1; i<=rest; ++i)
            ans=(ans*fact[n/k+1])%MOD;
        for(int i=1; i<=k-rest; ++i)
            ans=(ans*fact[n/k])%MOD;
    }
    cout<<ans;
    return 0;
}