Submission #19244

# Submission time Handle Problem Language Result Execution time Memory
19244 2016-02-22T12:16:25 Z kaTkaHr Σ (kriii4_P2) C++14
100 / 100
742 ms 1160 KB
#include <stdio.h>
#include <algorithm>
#include <map>

using namespace std;

typedef long long ll;

const int MX = 10005, MM = 1000000007;

ll pw(ll A, ll B){
	ll R = 1;
	while(B){
		if( B & 1 ) R = R * A % MM;
		A = A * A % MM; B /= 2;
	}
	return R;
}

ll rv(ll A){ return pw(A, MM-2); }

int N[MX], S[MX];

int main()
{
	int M;
	scanf("%d", &M);
	for(int i = 1; i <= M; i++){
		scanf("%d%d", N+i, S+i);
	}
	ll ans = 0;
	for(int i = 1; i <= M; i++){
		ll t = 1;
		for(int j = 1; j <= M; j++){
			if(i == j) t = t * S[j] % MM;
			else t = t * N[j] % MM;
		}
		ans = (ans + t) % MM;
	}
	for(int i = 1; i <= M; i++){
		ans = ans * rv(N[i]) % MM;
	}
	printf("%lld\n", ans);
}
# Verdict Execution time Memory Grader output
1 Correct 731 ms 1160 KB Output is correct
2 Correct 733 ms 1160 KB Output is correct
3 Correct 734 ms 1160 KB Output is correct
4 Correct 737 ms 1160 KB Output is correct
5 Correct 742 ms 1160 KB Output is correct
6 Correct 738 ms 1160 KB Output is correct
7 Correct 740 ms 1160 KB Output is correct
8 Correct 732 ms 1160 KB Output is correct
9 Correct 742 ms 1160 KB Output is correct
10 Correct 742 ms 1160 KB Output is correct
11 Correct 740 ms 1160 KB Output is correct
12 Correct 737 ms 1160 KB Output is correct
13 Correct 736 ms 1160 KB Output is correct
14 Correct 733 ms 1160 KB Output is correct
15 Correct 739 ms 1160 KB Output is correct
16 Correct 735 ms 1160 KB Output is correct
17 Correct 742 ms 1160 KB Output is correct
18 Correct 733 ms 1160 KB Output is correct
19 Correct 733 ms 1160 KB Output is correct
20 Correct 734 ms 1160 KB Output is correct