Cod sursa(job #1960072)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 10 aprilie 2017 10:31:06
Problema Kperm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <bits/stdc++.h>
#define M 666013
#define Nmax 5001
#define ll long long
using namespace std;
ifstream f("kperm.in");
ofstream g("kperm.out");
ll fct[Nmax];
ll put(ll a, ll n)
{
    ll r=1;
    while(n)
    {
        if(n%2) r=(a*r)%M;
        n/=2;
        a=(a*a)%M;
    }
    return r;
}
int main()
{ll n,k,r,c,i;
f>>n>>k;
fct[0]=1;
for(i=1;i<=n;i++)
    fct[i]=(i*fct[i-1])%M;
r=n%k;
c=n/k;
ll p1,p2,p3;
p1=(fct[r]*fct[k-r])%M;
p2=fct[c+1];
p3=fct[c];
p2=put(p2,r);
p3=put(p3,k-r);
p2=(p2*p3)%M;
p1=(p1*p2)%M;
g<<p1;

    return 0;
}