Cod sursa(job #1411593)

Utilizator Ionut228Ionut Calofir Ionut228 Data 31 martie 2015 20:21:33
Problema Kperm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

const int MOD = 666013;

int N, K, lim;
long long sol1, sol2;
long long fact[5005];
int Rmic, Rmare, Cmic, Cmare;

int main()
{
    fin >> N >> K;
    Rmic = N % K;
    Rmare = K - Rmic;
    Cmare = (N - Rmic) / K;
    Cmic = Cmare + 1;

    lim = max(K, Cmic);
    fact[0] = 1LL;
    for (int i = 1; i <= lim; ++i)
        fact[i] = (i * fact[i - 1]) % MOD;

    sol1 = fact[Rmic];
    for (int i = 1; i <= Rmic; ++i)
        sol1 = (sol1 * fact[Cmic]) % MOD;
    sol2 = fact[Rmare];
    for (int i = 1; i <= Rmare; ++i)
        sol2 = (sol2 * fact[Cmare]) % MOD;

    fout << (sol1 * sol2) % MOD << '\n';

    fin.close();
    fout.close();
    return 0;
}