7202 | 2024. 01. 03 13:02:50 | MagyarKendeSZLG | Bányász RPG (40 pont) | cpp17 | Elfogadva 40/40 | 35ms | 5460 KiB |
#include <bits/stdc++.h>
#define speed cin.tie(0); ios::sync_with_stdio(0)
#define cinv(v) for (auto& e : v) cin >> e;
#define all(v) v.begin(), v.end()
#define has(s, e) s.count(e)
using namespace std;
using ll = long long;
using point = array<int, 2>;
int main() {
speed;
int N;
cin >> N;
vector<point> 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(all(v));
ll t = 0, xp = 0;
int l = 0, r = N - 1;
while (l <= r) {
if (v[l][0] <= xp) {
// finish the remaining in one sitting (yum)
t += v[l][1];
xp += v[l][1];
v[l] = {0, 0};
l++;
} else {
// if had to finish the inefficient way, this is done (mining be boring aa hell)
if (--v[r][1] == 0) r--;
t += 2; // go one by one here, time and xp gain is constant
xp++;
}
}
cout << t;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1828 KiB | |||
2 | Elfogadva | 0/0 | 8ms | 2268 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 2232 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2456 KiB | |||
5 | Elfogadva | 2/2 | 8ms | 2884 KiB | |||
6 | Elfogadva | 2/2 | 14ms | 3312 KiB | |||
7 | Elfogadva | 2/2 | 4ms | 3172 KiB | |||
8 | Elfogadva | 2/2 | 4ms | 3256 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3408 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3508 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3988 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3960 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3976 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 4124 KiB | |||
15 | Elfogadva | 2/2 | 21ms | 5028 KiB | |||
16 | Elfogadva | 2/2 | 28ms | 5116 KiB | |||
17 | Elfogadva | 2/2 | 23ms | 4940 KiB | |||
18 | Elfogadva | 2/2 | 35ms | 5460 KiB |