Cod sursa(job #1170503)

Utilizator ThomasFMI Suditu Thomas Thomas Data 13 aprilie 2014 18:42:55
Problema Kperm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
#include <algorithm>
using namespace std;

#define NMax 5005
#define MOD 666013

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

int n,k;
long long fact[NMax];

int main()
{
    int i;

    f>>n>>k;

    int p=n/k,r=n%k,rr;
    if(r) p++;
    if(!r) r=k;
    rr=k-r;

    int mfact=max(p,k);
    fact[0]=1LL;
    for(i=1;i<=mfact;i++) fact[i]=(fact[i-1]*i)%MOD;

    long long rez=(fact[r]*fact[rr])%MOD;
    for(i=1;i<=r;i++) rez=(rez*fact[p])%MOD;
    for(i=1;i<=rr;i++) rez=(rez*fact[p-1])%MOD;

    g<<rez<<"\n";

    f.close();
    g.close();
    return 0;
}