Submission #20077

#TimeUsernameProblemLanguageResultExecution timeMemory
20077suiΣ (kriii4_P2)C++14
100 / 100
19 ms1884 KiB
#define _CRT_SECURE_NO_WARNINGS // scanf(), gets() (needed for Visual C++) //#define NDEBUG #include <cassert> #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <functional> #include <string> #include <vector> #include <queue> #include <set> #include <map> #include <unordered_map> #include <stack> #include <deque> using namespace std; #define MEMSET(x, WITH) memset(x, (WITH), sizeof(x)) #define FOR(i, E) for(int i=0; i<(E); i++) #define REP(i, LO, HI) for(int i=(LO); i<=(HI); i++) #define GETINT(x) scanf("%d", &x) #define GETDBL(x) scanf("%lf", &x) #define GETSTR(x) scanf("%s", x) #define NEWINT(x) int x; scanf("%d", &x) #define NEWDBL(x) double x; scanf("%lf", &x) #define NEWLN putchar('\n') #ifdef _WIN32 #define popcnt __popcnt #else #define popcnt __builtin_popcount #endif typedef long long ll; //const ll MOD = 1000000007; //const double PI = atan(1) * 4; const ll MOD = 1000000007; ll powerMod(ll a, ll n) { ll ans = 1; for (int i=62; i>=0; i--) { ans = ans * ans % MOD; if ((n>>i)&1) ans = ans * a % MOD; } return ans; } ll a[10333]; ll b[10333]; int main() { int M; cin >> M; FOR(i, M) cin >> b[i] >> a[i]; /* ll numer = 0; FOR(i, M) { ll prod = a[i]; FOR(j, M) if (i != j) prod = prod * b[i] % MOD; numer = (numer + prod) % MOD; } ll denom = 1; FOR(i, M) denom = denom * b[i] % MOD; ll ans = numer * powerMod(denom, MOD-2) % MOD; cout << ans << endl; */ ll ans = 0; FOR(i, M) { ll term = a[i] * powerMod(b[i], MOD-2) % MOD; ans += term; ans %= MOD; } cout << ans << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...