Cod sursa(job #1810174)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 19 noiembrie 2016 18:07:08
Problema Kperm Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include<fstream>
#define mod 666013
using namespace std;
int n, k, x, y, i, sol;
int fact[5005];
ifstream fin("kperm.in");
ofstream fout("kperm.out");
int exp(int x, int p){
    int sol = 1;
    for(int i = 1; i <= p; i++){
        sol = sol * 1LL * x % mod;
    }
    return sol;
}
int main(){
    fin>> n >> k;
    fact[0] = 1;
    for(i = 1; i <= n; i++){
        fact[i] = fact[i - 1] * 1LL * i % mod;
    }
    if(n % k == 0){
        sol = fact[k] * 1LL * exp(fact[n / k], k) % mod;
    }
    else{
        x = n % k;
        y = k - n % k;
        sol = fact[x] * 1LL * fact[y] % mod * exp(fact[n / k + 1], x) % mod * exp(fact[n / k], y) % mod;
    }
    fout<< sol <<"\n";
    return 0;
}