5713 2023. 09. 09 18:58:20 TomaSajt Bányász RPG (40 pont) cpp17 Elfogadva 40/40 32ms 9604 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
  cin.tie(0), cin.sync_with_stdio(0);

  int n;
  cin >> n;

  vector<array<int, 2>> v(n);
  for (int i = 0; i < n; i++) cin >> v[i][0];
  for (int i = 0; i < n; i++) cin >> v[i][1];

  sort(v.begin(), v.end());

  int l = 0, r = n - 1;
  long long xp = 0, time = 0;
  while (l <= r) {
    // collect resource with lowest xp requirement, if it is met
    if (v[l][0] <= xp) {
      time += v[l][1];
      xp += v[l][1];
      v[l][1] = 0;
      l++;
    }
    // else collect the resource with the xp requirement that is the most unlikely to be met (the highest)
    else {
      time += 2;
      xp++;
      v[r][1]--;
      if (v[r][1] == 0) r--;
    }
  }
  cout << time;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1824 KiB
2 Elfogadva 0/0 8ms 2372 KiB
3 Elfogadva 2/2 2ms 2256 KiB
4 Elfogadva 2/2 3ms 2604 KiB
5 Elfogadva 2/2 7ms 3180 KiB
6 Elfogadva 2/2 13ms 3888 KiB
7 Elfogadva 2/2 4ms 3856 KiB
8 Elfogadva 2/2 4ms 4128 KiB
9 Elfogadva 3/3 2ms 4152 KiB
10 Elfogadva 3/3 3ms 4368 KiB
11 Elfogadva 3/3 3ms 4572 KiB
12 Elfogadva 3/3 3ms 4684 KiB
13 Elfogadva 4/4 3ms 5036 KiB
14 Elfogadva 4/4 3ms 5212 KiB
15 Elfogadva 2/2 20ms 6616 KiB
16 Elfogadva 2/2 27ms 7528 KiB
17 Elfogadva 2/2 21ms 8128 KiB
18 Elfogadva 2/2 32ms 9604 KiB