Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define sc( x ) scanf( "%d" , &x )
- #define REP( i , n ) for( int i = 0 ; i < n ; ++i )
- #define clr( t , val ) memset( t , val , sizeof( t ) )
- #define pb push_back
- #define all( v ) v.begin() , v.end()
- #define SZ( v ) ((int)(v).size())
- #define mp make_pair
- #define fi first
- #define se second
- typedef vector< int > vi;
- typedef long long ll;
- typedef vector< vi > vvi;
- #define MOD 1000003LL
- #define N 1000002
- ll F[ N + 5 ] , FP[ N + 5 ];
- ll pow( ll a , ll b , ll c ){
- ll ans = 1;
- while( b ){
- if( b & 1 ) ans = ( ans * a )%c;
- a = ( a * a )%c;
- b >>= 1;
- }
- return ans;
- }
- ll mod_inv( ll a , ll p ){
- return pow( a , p - 2 , p );
- }
- void init(){
- F[ 0 ] = 1;
- for( int i = 1 ; i <= N ; ++i )
- F[ i ] = ( (ll) i * F[ i - 1 ] )%MOD;
- FP[ N ] = mod_inv( F[ N ] , MOD ) ;
- for( int i = N - 1 ; i >= 0 ; --i )
- FP[ i ] = ( (ll)FP[ i + 1 ]*( i + 1 ) )%MOD;
- }
- ll comb( ll n, ll k ){
- ll ans = 1;
- while( n > 0 ){
- ll ni = n%MOD,ki = k%MOD;
- n /= MOD; k /= MOD;
- if( ni - ki < 0 )return 0;
- ll temp = (FP[ki]*FP[ni-ki])%MOD;
- temp = (temp*F[ni])%MOD;
- ans = (ans*temp)%MOD;
- }
- return ans;
- }
- int main(){
- init();
- ios_base :: sync_with_stdio( 0 );
- int cases;
- cin >> cases;
- REP( tc , cases ){
- ll n , L , R;
- cin >> n >> L >> R;
- ll len = R - L + 1;
- cout << (comb( n + len , len ) - 1 + MOD)%MOD << '\n';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment