Cod sursa(job #1746725)

Utilizator ade_tomiEnache Adelina ade_tomi Data 23 august 2016 20:00:38
Problema Kperm Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#define mod 666013
using namespace std;
int fact (int k)
{
    int sol = 1;
    for (int i = 1; i <= k; i++)
        sol = (sol * i) % mod;
    return sol;
}


int put (int baza, int exp)
{
    int sol = 1;
    for (int i = 1; i <= exp; i++)
        sol = (sol * baza) % mod;
    return sol;
}
int n, k ;
int main()
{
    ifstream cin ("kperm.in");
    ofstream cout ("kperm.out");
    cin >> n >> k;
    int r = n % k;
    int c = n / k;
    if (k % 2 == 0)
    {
        cout << "0";
        return 0;
    }
    if (2 * k <= n)
    {
        cout << "0";
        return 0;
    }
    int  rez = fact (r);
    rez = (rez * fact(k - r)) % mod;
    int debug = 0;
    if (debug)
    {
        cout << rez << " ";

    }
    int b1 = fact(c + 1);
    rez = (rez * put(b1, r)) % mod;
    if (debug)
    {
        cout << b1 << " ";
    }
    int b2 = fact(c);
    rez = (rez * put(b2, k - r)) % mod;
    cout << rez;
    return 0;

}