Pagini recente » Cod sursa (job #2827346) | Cod sursa (job #1629267) | Cod sursa (job #2278343) | Cod sursa (job #86782) | Cod sursa (job #1412997)
#include <cstdio>
#define MOD 2000003
using namespace std;
int nr,sol,n,k,i,df,solm;
inline void solve(int n,int k)
{
int df,i;
df=n-k;
solm=k;
nr=1;
for(i=k;i>k-df;--i)
nr=(int)((1LL*nr*i)%MOD);
solm=(solm+(int)(nr/2))%MOD;
sol=(1LL*sol*solm)%MOD;
if(n-2*k+2<0) printf("%d\n",sol);
else solve(n-k+1,k);
}
int main()
{
freopen("sandokan.in","r",stdin);
freopen("sandokan.out","w",stdout);
scanf("%d%d",&n,&k);
///////////////////////cazuri sigure
if(n==k)
{
printf("1\n");
return 0;
}
if(n==k+1)
{
printf("%d\n",n-1);
return 0;
}
///////////////////////cazuri nesigure
if(n+2>=2*k)
{
sol=1;
solve(n,k);
return 0;
}
/////////////////////cazuri aproape sigure
df=n-k;sol=k;nr=1;
for(i=k;i>k-df;--i)
nr=(int)((1LL*nr*i)%MOD);
sol=(sol+(int)(nr/2))%MOD;
printf("%d\n",sol);
return 0;
}