Cod sursa(job #2852764)

Utilizator rares89_Dumitriu Rares rares89_ Data 19 februarie 2022 15:26:15
Problema Sandokan Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>
#define MOD 2000003

using namespace std;

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

long long int putere(int a, int n) {
    if(n == 0) {
        return 1LL;
    }
    if(n % 2 == 1) {
        return (1LL * a * putere(a, n - 1)) % MOD;
    }
    long long int P = putere(a, n / 2);
    return (P * P) % MOD;
}

int n, k, fact[5005];

int main() {
    fin >> n >> k;
    fin.close();
    fact[0] = fact[1] = 1;
    for(int i = 2; i <= n; i++) {
        fact[i] = (1LL * i * fact[i - 1]) % MOD;
    }
    int p = (n - 1) % (k - 1) + 1;
    fout << (1LL * fact[n - 1] * putere(fact[p - 1], MOD - 2) * putere(fact[n - p], MOD - 2)) % MOD;
    return 0;
}