Pagini recente » Cod sursa (job #2414784) | Cod sursa (job #550394) | Cod sursa (job #415038) | Diferente pentru problema/bfs intre reviziile 53 si 52 | Cod sursa (job #3315094)
#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;
}