#include <cstdio>
#define mod 1000000007
#define ll long long
ll n;
ll table[50];
void make_table(ll a){
int i;
table[0]=a%mod;
for(i=1;i<32;i++) table[i]=(table[i-1]*table[i-1])%mod;
}
ll pow(ll a,ll s){
ll i,now=1,res=1;
make_table(a);
for(i=0;s;i++){
if(s&now) res*=table[i],res%=mod,s-=now; now*=2;
}
return res;
}
int main(){
int i;
ll a,s,res=0;
scanf("%lld",&n);
for(i=0;i<n;i++){
scanf("%lld %lld",&s,&a);
res+=(pow(s,mod-2)*a)%mod; res%=mod;
}
printf("%lld",res);
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
1084 KB |
Output is correct |
2 |
Correct |
4 ms |
1084 KB |
Output is correct |
3 |
Correct |
7 ms |
1084 KB |
Output is correct |
4 |
Correct |
5 ms |
1084 KB |
Output is correct |
5 |
Correct |
7 ms |
1084 KB |
Output is correct |
6 |
Correct |
0 ms |
1084 KB |
Output is correct |
7 |
Correct |
4 ms |
1084 KB |
Output is correct |
8 |
Correct |
8 ms |
1084 KB |
Output is correct |
9 |
Correct |
4 ms |
1084 KB |
Output is correct |
10 |
Correct |
7 ms |
1084 KB |
Output is correct |
11 |
Correct |
4 ms |
1084 KB |
Output is correct |
12 |
Correct |
5 ms |
1084 KB |
Output is correct |
13 |
Correct |
0 ms |
1084 KB |
Output is correct |
14 |
Correct |
5 ms |
1084 KB |
Output is correct |
15 |
Correct |
2 ms |
1084 KB |
Output is correct |
16 |
Correct |
5 ms |
1084 KB |
Output is correct |
17 |
Correct |
6 ms |
1084 KB |
Output is correct |
18 |
Correct |
0 ms |
1084 KB |
Output is correct |
19 |
Correct |
0 ms |
1084 KB |
Output is correct |
20 |
Correct |
0 ms |
1084 KB |
Output is correct |