Advertisement
he_obviously

Untitled

Apr 25th, 2020
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.36 KB | None | 0 0
  1. //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
  2. //#pragma GCC optimize("unroll-loops")
  3. //#pragma GCC optimize("Ofast")
  4.  
  5. #include <bits/stdc++.h>
  6.  
  7. using namespace std;
  8.  
  9. typedef long long ll;
  10. typedef long double ld;
  11.  
  12. #define pb push_back
  13. #define pii pair<int, int>
  14. #define mp make_pair
  15. #define loop(i, n) for(int i = 0; i < (int)n; ++i)
  16. #define loop1(i, n) for(int i = 1; i <= (int)n; ++i)
  17. #define F first
  18. #define S second
  19. #define sorted(a) sort(a.begin(), a.end())
  20.  
  21. int main() {
  22.     ios::sync_with_stdio(0);
  23.     cin.tie(0); cout.tie(0);
  24.     int n;
  25.     cin >> n;
  26.     vector <pair <int, ll>> a(n);
  27.     for (int i = 0; i < n; ++i) {
  28.         int x, y;
  29.         cin >> x >> y;
  30.         a[i] = mp(x, y);
  31.     }
  32.     ll left = 0, right = 2e9 + 2;
  33.     while (right - left > 1) {
  34.         ll mid = left + (right - left) / 2;
  35.         for (int i = 0; i < n; ++i) {
  36.             if (a[i].F == 1) {
  37.                 mid *= a[i].S;
  38.             }
  39.             else if (a[i].F == 2) {
  40.                 mid += a[i].S;
  41.             }
  42.             else {
  43.                 mid -= a[i].S;
  44.             }
  45.             if (mid > 1e9) break;
  46.         }
  47.         if (mid <= 0) {
  48.             left = left + (right - left) / 2;
  49.         }
  50.         else {
  51.             right = left + (right - left) / 2;
  52.         }
  53.     }
  54.     cout << right;
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement