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 |