Cod sursa(job #3315748)

Utilizator Gerald123Ursan George Gerald123 Data 15 octombrie 2025 20:40:48
Problema Sandokan Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>

#define MOD 2000003
using namespace std;

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

long long i,n,k,f[5010],fi[5010],p;

long long rid(long long x,int put)
{
    long long ras=1;
    while(put)
    {
        if(put%2==1)
            ras=ras*x%MOD;
        x=x*x%MOD;
        put/=2;
    }
    return ras;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    fin>>n>>k;
    p=(n-1)%(k-1)+1;
    f[0]=f[1]=1;
    for(i=2; i<=n; i++)
        f[i]=f[i-1]*i%MOD;
    fi[n]=rid(f[n],MOD-2);
    for(i=n-1; i>=0; i--)
        fi[i]=fi[i+1]*(i+1)%MOD;
    fout<<(f[n-1]*fi[p-1]%MOD)*fi[n-p]%MOD;
    return 0;
}