Cod sursa(job #3153688)

Utilizator SSKMFSS KMF SSKMF Data 30 septembrie 2023 18:50:54
Problema Sandokan Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
using namespace std;

ifstream cin ("sandokan.in");
ofstream cout ("sandokan.out");

const int mod = 2e6 + 3;

int Invers (const int valoare)
{
    return valoare <= 1 ? 1 : mod - 1LL * (mod / valoare) * Invers(mod % valoare) % mod;
}

int Combinari (int total , int luate)
{
    int numarator = 1 , numitor = 1;
    luate = min(luate , total - luate);
    for (int valoare = 1 ; valoare <= luate ; valoare++) {
        numarator = 1LL * numarator * (total - luate + valoare) % mod;
        numitor = 1LL * numitor * valoare % mod;
    }

    return 1LL * numarator * Invers(numitor) % mod;
}

int main ()
{
    int lungime_totala , lungime_subsir;
    cin >> lungime_totala >> lungime_subsir;
    cout << Combinari(lungime_totala - 1 , (lungime_totala - 1) % (lungime_subsir - 1));
    cout.close(); cin.close();
    return 0;
}