Cod sursa(job #1312798)

Utilizator cautionPopescu Teodor caution Data 9 ianuarie 2015 22:36:08
Problema Kperm Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#define MODULO 666013
using namespace std;
long long factorial(long long n)
{
    long long k=1;
    for(long long i=1; i<=n; ++i)
        k=k*i%MODULO;
    return k;
}
long long exponential(long long n, long long pow)
{
    long long k=1;
    for(long long i=0; i<pow; ++i)
        k=k*n%MODULO;
    return k;
}
int main()
{
    ifstream in("kperm.in");
    ofstream out("kperm.out");
    long long n, k, ax;
    in>>n>>k;
    if(k%2==0)
        out<<"0\n";
    else
    {
        ax=factorial(n/k);
        out<<((factorial(n%k)*exponential(ax*(n/k+1), n%k))%MODULO)*factorial(k-n%k)*exponential(ax, k-n%k)%MODULO<<'\n';
    }
    in.close(); out.close();
    return 0;
}