Submission #19414

#TimeUsernameProblemLanguageResultExecution timeMemory
19414kdh9949Σ (kriii4_P2)C++98
100 / 100
6 ms1396 KiB
#include <cstdio> #include <algorithm> using namespace std; typedef long long ll; int n; ll a[10010], b[10010], pfmul[10010], sfmul[10010]; ll ansa, ansb; ll mod = 1000000007; ll pw(ll x, ll k){ if(k == 0) return 1; if(k == 1) return x; ll t = pw(x, k / 2); t *= t; t %= mod; if(k % 2) return t * x % mod; return t; } ll modinv(ll x){ return pw(x % mod, mod - 2); } int main(){ scanf("%d", &n); for(int i = 1; i <= n; i++){ scanf("%lld%lld", b + i, a + i); } ansb = 1; for(int i = 1; i <= n; i++){ ansb *= b[i]; ansb %= mod; } pfmul[0] = sfmul[n + 1] = 1; for(int i = 1; i <= n; i++) pfmul[i] = pfmul[i - 1] * b[i] % mod, sfmul[n + 1 - i] = sfmul[n + 2 - i] * b[n + 1 - i] % mod; for(int i = 1; i <= n; i++){ ansa += pfmul[i - 1] * a[i] % mod * sfmul[i + 1] % mod; ansa %= mod; } printf("%lld\n", (ansa * modinv(ansb)) % mod); }
#Verdict Execution timeMemoryGrader output
Fetching results...