9473 | 2024. 02. 22 09:33:20 | csaron71 | Bányász RPG (40 pont) | cpp17 | Elfogadva 40/40 | 70ms | 10076 KiB |
#include <bits/stdc++.h>
using namespace std;
int main() {
long long n;
cin >> n;
vector<long long> kell;
vector<pair<long long, long long> > kovek;
for (long long i=0; i<n; i++) {
long long x;
cin >> x;
kell.push_back(x);
}
for (long long i=0; i<n; i++) {
long long x;
cin >> x;
kovek.push_back({kell[i], x});
}
sort(kovek.begin(), kovek.end());
deque<pair<long long, long long> > sor; // szint, hany
for (auto sz : kovek) {
sor.push_back(sz);
}
long long szint=0;
long long ido=0;
while (sor.size()>0) {
if (szint>=sor.front().first) {
szint+=sor.front().second;
ido+=sor.front().second;
sor.pop_front();
}
else {
if (szint+sor.back().second<sor.front().first) {
szint+=sor.back().second;
ido+=2*sor.back().second;
sor.pop_back();
}
else {
long long sorvegf = sor.back().first;
long long sorvegs = sor.back().second;
sor.pop_back();
long long utso=sor.front().first-szint;
sorvegs-=utso;
szint=sor.front().first;
ido+=2*utso;
sor.push_back({sorvegf, sorvegs});
}
}
//cout << "\n" << szint << " TIME: " << ido << "\n";
}
/*
long long kelloszint=sor.front().first;
long long db=sor.front().second;
//cout << "Szint: " << szint << " cel: " << kelloszint << " DB: " << db << "\n";
if (kelloszint-szint<db) {
long long meg=db-(max (kelloszint-szint, 0));
ido+=2*(max(kelloszint-szint, 0));
ido+=meg;
}
else {
ido+=2*db;
}*/
cout << ido << " \n";
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1808 KiB | |||
2 | Elfogadva | 0/0 | 14ms | 3120 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 2216 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2592 KiB | |||
5 | Elfogadva | 2/2 | 12ms | 3444 KiB | |||
6 | Elfogadva | 2/2 | 24ms | 5060 KiB | |||
7 | Elfogadva | 2/2 | 4ms | 3072 KiB | |||
8 | Elfogadva | 2/2 | 6ms | 3316 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3116 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3240 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3084 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3168 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3312 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 3264 KiB | |||
15 | Elfogadva | 2/2 | 41ms | 7052 KiB | |||
16 | Elfogadva | 2/2 | 54ms | 8380 KiB | |||
17 | Elfogadva | 2/2 | 43ms | 7504 KiB | |||
18 | Elfogadva | 2/2 | 70ms | 10076 KiB |