Cod sursa(job #3356788)

Utilizator MrPetcuPetcu Robert MrPetcu Data 4 iunie 2026 09:43:05
Problema Sandokan Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;

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

const int MOD = 2e6 + 3;

int num_elemente, num_alese;

int power(int n, int x) {
    if (x == 0) {
        return 1LL;
    }
    else if (x % 2) {
        return 1LL * n * power(n, x - 1) % MOD;
    }
    int p = power(n, x / 2);
    return 1LL * p * p % MOD;
}

int invers(int n) {
    return power(n, MOD - 2);
}

int aranjamente(int n, int k) {
    long long rez = 1;
    for (int i = n; i >= n - k + 1; i--) {
        rez = rez * i % MOD;
    }
    return rez;
}

int combinari(int n, int k) {
    return 1LL * aranjamente(n, k) * invers(aranjamente(k, k)) % MOD;
}

int main() {
    fin >> num_elemente >> num_alese;
    int p = (num_elemente - 1) % (num_alese - 1)  + 1;
    fout << combinari(num_elemente - 1, p - 1);
    return 0;
}