Cod sursa(job #3191524)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 9 ianuarie 2024 20:52:02
Problema Sandokan Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("sandokan.in");
ofstream fout("sandokan.out");
const int mod = 2000003;
long long n, k, p;

static inline long long Put(long long a, int n) {
    long long p = 1;
    while(n) {
        if(n & 1) p = 1LL * (p * a) % mod;
        a = 1LL * (a * a) % mod;
        n >>= 1;
    }
    return p;
}

static inline long long Comb(int n, int k) {
    long long p = 1;
    for(int i = 1; i <= k; i++) {
        p = 1LL * p * ((n - i + 1) % mod) % mod * Put(i, mod - 2) % mod;
    }
    return p;
}

int main() {
    fin >> n >> k;
    p = (n - 1) % (k - 1) + 1;
    fout << Comb(n - 1, p - 1);

    return 0;
}