Pagini recente » Cod sursa (job #2748299) | Cod sursa (job #52509) | Cod sursa (job #1096316) | Cod sursa (job #2508367) | Cod sursa (job #728223)
Cod sursa(job #728223)
#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';
F.close();
G.close();
return 0;
}