Cod sursa(job #1221976)

Utilizator sebinechitasebi nechita sebinechita Data 21 august 2014 19:52:19
Problema Kperm Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("kperm.in");
ofstream fout("kperm.out");
#define MOD 666013

int fact[5001];

int pow(int a, int p)
{
    int rez=1;
    while(p)
    {
        if(p&1)
            rez=(1LL*rez*a)%MOD;
        a=(1LL*a*a)%MOD;
        p>>=1;
    }
    return rez;
}

int main()
{
    int n, k, a, b, c, d, i, x, rez;
    fin>>n>>k;
    fact[0]=1;
    for(i=1;i<=n;i++)
        fact[i]=1LL*(fact[i-1]*i)%MOD;

    if(n%k==0)
    {
        rez=(1LL*pow(fact[n/k], k)*fact[k])%MOD;
        cout<<rez<<"\n";
    }

    a = n / k;
    b = n % k;
    if(b==0)
        c=a;
    else
        c=a+1;
    d=(k-n%k);

    cout<<a<<" "<<b<<" "<<c<<" "<<d<<"\n";


    fout<<(1LL*pow(fact[c], b)*fact[b]*pow(fact[a], d)*fact[d])%MOD;
}