9163 2024. 02. 16 17:30:46 UVince Bányász RPG (40 pont) cpp17 Elfogadva 40/40 32ms 6140 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    ll n;
    cin >> n;
    vector<pair<ll, ll>> v(n);
    ll sum = 0;
    for (int i = 0; i < n; i++)
    {
        cin >> v[i].first;
    }
    for (int i = 0; i < n; i++)
    {
        cin >> v[i].second;
        sum += v[i].second;
    }
    sort(v.begin(), v.end());
    ll l = 0, r = n - 1, tap = 0, t = 0;
    while (tap < sum)
    {
        if (tap >= v[l].first)
        {
            t += v[l].second;
            tap += v[l].second;
            l++;
        }
        else
        {
            while (v[l].first > tap)
            {
                int add = min(v[r].second, v[l].first - tap);
                tap += add;
                v[r].second -= add;
                t += add * 2;
                if (v[r].second == 0)
                    r--;
            }
        }
    }
    cout << t;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1824 KiB
2 Elfogadva 0/0 8ms 2316 KiB
3 Elfogadva 2/2 3ms 2236 KiB
4 Elfogadva 2/2 3ms 2344 KiB
5 Elfogadva 2/2 7ms 2848 KiB
6 Elfogadva 2/2 13ms 3728 KiB
7 Elfogadva 2/2 4ms 3084 KiB
8 Elfogadva 2/2 4ms 3344 KiB
9 Elfogadva 3/3 3ms 3400 KiB
10 Elfogadva 3/3 2ms 3388 KiB
11 Elfogadva 3/3 2ms 3268 KiB
12 Elfogadva 3/3 3ms 3276 KiB
13 Elfogadva 4/4 3ms 3548 KiB
14 Elfogadva 4/4 3ms 3488 KiB
15 Elfogadva 2/2 19ms 4824 KiB
16 Elfogadva 2/2 26ms 5496 KiB
17 Elfogadva 2/2 21ms 5036 KiB
18 Elfogadva 2/2 32ms 6140 KiB