範例程式碼 uva12546
//uva12546
#include <iostream>
using namespace std;
int main() {
int t, c, k = 0, factor[15], power[15];
long long n, ans, num[15], prev[15];
const long long mod = 1000000007;
cin >> t;
while (k < t) {
++k;
cin >> c;
for (int i = 0; i < c; ++i)
cin >> factor[i] >> power[i];
n = 1;
for (int i = 0; i < c; ++i) {
num[i] = 1;
prev[i] = 1;
for (int j = 0; j < power[i]; ++j) {
prev[i] = (prev[i] * factor[i]) % mod;
num[i] = (num[i] + prev[i]) % mod;
}
num[i] = (num[i] + (power[i] * prev[i]) % mod) % mod;
n = (n * prev[i]) % mod;
}
ans = 1;
for (int i = 0; i < c; ++i)
ans = (ans * num[i]) % mod;
ans = (ans + n) % mod;
cout << "Case " << k << ": " << ans << endl;
}
return 0;
}