Advertisement
Oibek

Test

Mar 14th, 2019
1,315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. using ll = long long;
  4. int k[100002];
  5. int a[100002], b[100002];
  6.  
  7. signed main() {
  8.     ios::sync_with_stdio(0);
  9.     cin.tie(nullptr);
  10.     cout.tie(nullptr);
  11.     int n;
  12.     cin >> n;
  13.     int cc = 0;
  14.     for (int i = 0; i < n; i++) {
  15.         cin >> k[i];
  16.         cc += k[i];
  17.     }
  18.     for (int i = 0; i < n; i++)
  19.         cin >> a[i];
  20.  
  21.     for (int i = 0; i < n; i++)
  22.         cin >> b[i];
  23.     int x;
  24.     cin >> x;
  25.     int l = 0, r = 100000000;
  26.     while (l < r) {
  27.         int m = (l + r) / 2;
  28.         int cur = 0;
  29.         for (int i = 0; i < n; i++) {
  30.             cur += min(a[i], (m + 1) / 2);
  31.             if (x <= m)
  32.                 cur += b[i];
  33.         }
  34.         if (2 * cur > cc) {
  35.             r = m;
  36.         } else {
  37.             l = m + 1;
  38.         }
  39.     }
  40.     int cur = 0;
  41.     ll ans = 0;
  42.     for (int i = 0; i < n; i++) {
  43.         int y = min(a[i], l / 2);
  44.         cur += y;
  45.         ans += 1ll * y * y;
  46.         if (x <= l - 1) {
  47.             cur += b[i];
  48.             ans += 1ll * x * b[i];
  49.         }
  50.     }
  51.     for (int i = 0; i < n; i++) {
  52.         if (2 * cur > cc)
  53.             break;
  54.         if ((l & 1) && 2 * a[i] - 1 >= l) {
  55.             cur++;
  56.             ans += l;
  57.         }
  58.         if (x == l && 2 * cur <= cc) {
  59.             ans += 1ll * min(cc / 2 - cur + 1, b[i]) * x;
  60.             cur += min(cc / 2 - cur + 1, b[i]);
  61.         }
  62.     }
  63.     if (2 * cur <= cc) {
  64.         cout << -1;
  65.     } else {
  66.         cout << ans;
  67.     }
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement