问题可以转化成一个
n+1
个元素的序列,第一个是
l
,最后一个是
#include<cstdio>
#include<algorithm>
using namespace std;
#define LL long long
const int p=1000003;
int fac[p+10],inv[p+10];
int pow(int base,int k)
{
int ret=1;
for (;k;k>>=1,base=(LL)base*base%p)
if (k&1) ret=(LL)ret*base%p;
return ret;
}
int c(int n,int k)
{
if (k>n) return 0;
return (LL)fac[n]*inv[k]%p*inv[n-k]%p;
}
void solve()
{
int n,l,r;
scanf("%d%d%d",&n,&l,&r);
printf("%d\n",((LL)c((r-l+1+n)%p,n%p)*c((r-l+1+n)/p,n/p)%p-1+p)%p);
}
int main()
{
int T;
fac[0]=inv[0]=1;
for (int i=1;i<p;i++) fac[i]=(LL)fac[i-1]*i%p;
inv[p-1]=pow(fac[p-1],p-2);
for (int i=p-2;i;i--) inv[i]=(LL)inv[i+1]*(i+1)%p;
scanf("%d",&T);
while (T--) solve();
}