답안 #19412

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
19412 2016-02-24T11:28:22 Z ekfrl0526 Σ (kriii4_P2) C++14
100 / 100
11 ms 1720 KB
#include<bits/stdc++.h>
using namespace std;
const long long divs = 1000000007;
vector<long long> as;
void initial(long long a) {
	long long ia = a;;
	for (int i = 0; i < 64; i++) {
		if (ia >= divs) ia = ia%divs;
		as.push_back(ia);
		ia *= ia;
	}
}

int main() {
	int n;
	long long ans = 0;
	scanf("%d ", &n);
	while (n--) {
		as.clear();
		long long a, b;
		long long x = divs - 2;
		scanf("%lld %lld", &b, &a);
		initial(b);
		int c = 0;
		long long result = 1;
		while (x > 0) {
			if (x % 2 == 1) {
				result *= as[c];
				result %= divs;
			}
			x /= 2;
			c++;
		}
		result *= a % divs;
		result %= divs;
		ans += result;
		ans %= divs;
	}

	cout << ans << endl;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 1720 KB Output is correct
2 Correct 9 ms 1720 KB Output is correct
3 Correct 11 ms 1720 KB Output is correct
4 Correct 6 ms 1720 KB Output is correct
5 Correct 0 ms 1720 KB Output is correct
6 Correct 11 ms 1720 KB Output is correct
7 Correct 10 ms 1720 KB Output is correct
8 Correct 3 ms 1720 KB Output is correct
9 Correct 5 ms 1720 KB Output is correct
10 Correct 7 ms 1720 KB Output is correct
11 Correct 0 ms 1720 KB Output is correct
12 Correct 10 ms 1720 KB Output is correct
13 Correct 7 ms 1720 KB Output is correct
14 Correct 7 ms 1720 KB Output is correct
15 Correct 0 ms 1720 KB Output is correct
16 Correct 11 ms 1720 KB Output is correct
17 Correct 11 ms 1720 KB Output is correct
18 Correct 8 ms 1720 KB Output is correct
19 Correct 7 ms 1720 KB Output is correct
20 Correct 8 ms 1720 KB Output is correct