Submission #19393

#TimeUsernameProblemLanguageResultExecution timeMemory
19393bshnetΣ (kriii4_P2)C++14
100 / 100
16 ms1720 KiB
#include <iostream> #include <vector> #define MOD (1000000007) using namespace std; int pow(int64_t a, int64_t x) { int64_t sq[64]; int ans = 1; sq[0] = (a % MOD); for(int i = 1; i <= 64; ++i) { if(x & 0x01) ans = (ans * sq[i-1]) % MOD; x >>= 1; if(!x) break; sq[i] = (sq[i-1] * sq[i-1]) % MOD; } return ans; } int expect(vector<int> &ni, vector<int> &si) { int n = ni.size(); int ans = 0; for(int i = 0; i < n; ++i) { int64_t e = ((int64_t)si[i] * pow(ni[i], MOD - 2)) % MOD; ans = (ans + e) % MOD; } return ans; } int main(void) { int M; cin >> M; vector<int> Ni(M), Si(M); for(int i = 0; i < M; ++i) { cin >> Ni[i] >> Si[i]; } cout << expect(Ni, Si) << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...