Cod sursa(job #3240619)

Utilizator GoreaRaresGorea Rares-Andrei GoreaRares Data 18 august 2024 21:02:32
Problema Sandokan Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
#include <fstream>
#define int unsigned long long
#define mod 2000003

int fact[5001], v[5001];

int lgpow(int a, int b)
{
    int rez = 1;
    while(b > 0)
    {
        if(b & 1)
        {
            rez = rez * a % mod;
        }
        a = a * a % mod;
        b >>= 1;
    }
    return rez;
}

int combinari(int n, int k)
{
    return fact[n] * lgpow(fact[k] * fact[n - k] % mod, mod - 2) % mod;
}

using namespace std;

signed main()
{
    ifstream cin("sandokan.in");
    ofstream cout("sandokan.out");
    int n, k, i, rez = 1;
    cin >> n >> k;
    for(i = 1; i <= n; i++)
    {
        cin >> v[i];
    }
    fact[0] = 1;
    for(i = 1; i <= n; i++)
    {
        fact[i] = i * fact[i - 1] % mod;
    }
    while(n >= k)
    {
        rez = rez * combinari(n, k) % mod;
        n -= (k - 1);
    }
    cout << rez;
    return 0;
}