Cod sursa(job #1764432)

Utilizator dsergiu05Sergiu Druga dsergiu05 Data 25 septembrie 2016 15:27:28
Problema Kperm Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>

using namespace std;

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

const int mod=666013;

typedef long long i64;

int main () {
    int n, k;
    fin>>n>>k;

    int x=n/k;
    int y=n-k*x;

    i64 a=1;
    for (int i=1; i<=y; i++) {
        a=a*i%mod;
    }
    for (int i=1; i<=k-y; i++) {
        a=a*i%mod;
    }

    i64 c=1;
    for (int i=1; i<=x+1; i++) {
        c=c*i%mod;
    }
    i64 c1=c;
    for (int i=1; i<=y-1; i++) {
        c=c*c1%mod;
    }

    i64 d=1;
    for (int i=1; i<=x; i++) {
        d=d*i%mod;
    }
    i64 d1=d;
    for (int i=1; i<=k-y-1; i++) {
        d=d*d1%mod;
    }

    fout<<a*c%mod*d%mod;

    return 0;
}