Cod sursa(job #3357678)

Utilizator Radu_BicliBiclineru Radu Radu_Bicli Data 12 iunie 2026 19:42:38
Problema Sandokan Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <bits/stdc++.h>

using namespace std;

#define USE_STD_IO 0
#if USE_STD_IO
    #define fin cin
    #define fout cout
#else
    ifstream fin("sandokan.in");
    ofstream fout("sandokan.out");
#endif

const long long MOD = 2000003;
int n, k;

static inline long long Put(long long a, long long n) {
    long long p = 1;
    while(0 < n) {
        if(1 & n) p = (p * a) % MOD;
        a = (a * a) % MOD;
        n >>= 1;
    }
    return p;
}

static inline long long Comb(long long n, long long k) {
    if(n < k) return 1;
    long long nr = 1, nm = 1;
    for(long long i = n - k + 1; i <= n; i++) nr = (i % MOD * nr) % MOD;
    for(long long i =         1; i <= k; i++) nm = (i % MOD * nm) % MOD;
    return nr * Put(nm, MOD - 2) % MOD;
}

int main() {
    #if USE_STD_IO
        ios_base::sync_with_stdio(false);
    #endif // USE_STD_IO
    fin.tie(NULL);
    fout.tie(NULL);

    fin >> n >> k;
    fout << Comb(n, n % k);

    return 0;
}