Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
- //#pragma GCC optimize("unroll-loops")
- //#pragma GCC optimize("Ofast")
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef long double ld;
- #define pb push_back
- #define pii pair<int, int>
- #define mp make_pair
- #define loop(i, n) for(int i = 0; i < (int)n; ++i)
- #define loop1(i, n) for(int i = 1; i <= (int)n; ++i)
- #define F first
- #define S second
- #define sorted(a) sort(a.begin(), a.end())
- int main() {
- ios::sync_with_stdio(0);
- cin.tie(0); cout.tie(0);
- int n;
- cin >> n;
- vector <pair <int, ll>> a(n);
- for (int i = 0; i < n; ++i) {
- int x, y;
- cin >> x >> y;
- a[i] = mp(x, y);
- }
- ll left = 0, right = 2e9 + 2;
- while (right - left > 1) {
- ll mid = left + (right - left) / 2;
- for (int i = 0; i < n; ++i) {
- if (a[i].F == 1) {
- mid *= a[i].S;
- }
- else if (a[i].F == 2) {
- mid += a[i].S;
- }
- else {
- mid -= a[i].S;
- }
- if (mid > 1e9) break;
- }
- if (mid <= 0) {
- left = left + (right - left) / 2;
- }
- else {
- right = left + (right - left) / 2;
- }
- }
- cout << right;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement