Cod sursa(job #2814726)

Utilizator puica2018Puica Andrei puica2018 Data 8 decembrie 2021 15:14:13
Problema Kperm Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("kperm.in");
ofstream fout("kperm.out");

/// daca k=par rez=0
/// f[c1]*f[fr[1]]*f[fr[2]]*...*f[fr[c1]]*
/// f[c2]*f[fr[c1+1]]*f[fr[c1+2]]*...*f[fr[k-1]]*f[fr[0]]

const int mod=666013;
int n,k;
int fr[5005],f[5005];

int main()
{
    fin>>n>>k;
    int i;
    fr[0]=n/k;
    for(i=1; i<k; i++)
    {
        if(i<=n%k)
            fr[i]=n/k+1;
        else
            fr[i]=n/k;
    }
    f[0]=1;
    for(i=1; i<=n; i++)
        f[i]=1LL*f[i-1]*i%mod;
    int c1=0,c2;
    for(i=0; i<k; i++)
        if(fr[i]==fr[1])
            c1++;
    c2=k-c1;
    int ans=1;
    for(i=0; i<k; i++)
        ans=1LL*ans*f[fr[i]]%mod;
    ans=1LL*ans*f[c1]*f[c2]%mod;
    fout<<ans<<"\n";
    return 0;
}