Cod sursa(job #3315094)

Utilizator Alexia12345Maftei Alexia Alexia12345 Data 12 octombrie 2025 12:48:19
Problema Sandokan Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#define MOD 2000003
#define int long long
using namespace std;

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

int n,k,s[5003],x;
long long p[5003],maxi;

int putere(long long a, long long b)
{
    long long rez=1;
    while(b)
    {
        if(b%2)
            rez=rez*a%MOD;
        b/=2;
        a=a*a%MOD;
    }
    return rez;
}
int invmod(long long a)
{
    return putere(a,MOD-2)%MOD;
}
void precalc()
{
    p[0]=p[1]=1;
    for(int i=2;i<=maxi;i++)
        p[i]=p[i-1]*i%MOD;
}
int C(int n,int k)
{
    //fout<<invmod(p[k]*p[n-k])<<endl;
    return (p[n]*invmod(p[k])%MOD*invmod(p[n-k])%MOD);

}

signed main()
{
    fin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        fin>>s[i];
        if(s[i]>maxi)
            maxi=s[i];
    }
    precalc();
    long long rez;
    x=(n-1)%(k-1)+1;
    //fout<<x<<" "<<n<<endl;
    rez=C(n-1,x-1)%MOD;
    fout<<rez;
    return 0;
}