Rivals
Given below code is for RIVAL spoj.
Hint :- simple math and inverse modulo problem
#include <bits/stdc++.h>
using namespace std ;
#define LL long long
#define MOD 1000000007
LL arr[2000009];
void pre()
{
arr[0] = 1;
arr[1] = 1;
for(LL i = 2 ; i<=2000000 ; i++)
arr[i] = (arr[i-1] * i)%MOD;
}
LL inv_mod(LL x)
{
LL a = 1 , p = x , n = 1000000005;
while(n)
{
if(n&1)
a = (a*p)%MOD;
p = (p * p )%MOD;
n>>=1;
}
return a;
}
int main()
{
int t;
pre() ;
scanf("%d",&t);
while(t--)
{
int x , y;
scanf("%d%d",&x , &y);
LL temp = (inv_mod(arr[x]) * inv_mod(arr[y]))%MOD;
LL res = (arr[x+y] * temp)%MOD;
printf("%lld\n",res);
}
return 0;
}
No comments:
Post a Comment
Your comment is valuable to us