Cod sursa(job #2331901)

Utilizator mircearoataMircea Roata Palade mircearoata Data 30 ianuarie 2019 09:46:21
Problema Kperm Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>

#define int long long

using namespace std;

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

int fact(int k)
{
    long long f = 1;
    for(int i = 2; i <= k; i++)
    {
        f *= 1LL * i;
        f %= 666013;
    }
    return f;
}

int n, k;
long long ans, f1;

int32_t main()
{
    in >> n >> k;
    if(k % 2 == 0)
    {
        out << 0;
        return 0;
    }
    int x = n % k;
    ans = (fact(x) * fact(k-x)) % 666013;
    f1 = fact(n/k);
    for(int i = 1; i <= k; i++)
    {
        ans *= f1 * (i <= n%k ? n/k+1 : 1);
        ans %= 666013;
    }
    out << ans;
    return 0;
}