Pagini recente » Cod sursa (job #2471314) | Cod sursa (job #2051666) | Cod sursa (job #1182287) | Cod sursa (job #1718881) | Cod sursa (job #971331)
Cod sursa(job #971331)
#include <fstream>
using namespace std;
ifstream F("sandokan.in");
ofstream G("sandokan.out");
#define Mod 2000003
#define max(a , b) ( ( a>b ) ? a : b )
#define min(a , b) ( ( a<b ) ? a : b )
#define ll long long
ll N,K;
ll Pow(int a,int b)
{
ll x=1,y=a;
while ( b > 0)
{
if ( b%2 == 1) x=(x*y)%Mod;
y = (y*y)%Mod;
b /= 2;
}
return x%Mod;
}
ll Comb(int N,int K)
{
ll Rez1=1, Rez2=1,Rez3=1;
for (int i=1;i<=N;++i)
Rez1=( Rez1 * i ) % Mod;
for (int i=1;i<=K;++i)
Rez2=( Rez2 * i ) % Mod;
for (int i=1;i<=N-K;++i)
Rez3=( Rez3 * i ) % Mod;
Rez2=( Rez2 * Rez3 ) % Mod;
Rez2=( Pow( Rez2 , Mod-2 ) ) % Mod ;
return ( Rez1 * Rez2 ) % Mod;
}
int main()
{
F>>N>>K;
if (N<=K)
G<<"1\n";
else
G<<Comb(N-1,(N-1) %(K-1 ))<<'\n';
/*
for(i=0;i<strlen(s);i++)
if(!strchr(alfabet,s[i])){
j=i-1;
while(strchr(alfabet,s[j]) && j>=0){
fout<<s[j];
j--;
}
fout<<s[i];
}
*/
F.close();
G.close();
return 0;
}