137212025-01-08 14:07:03AGergoBányász RPG (40 pont)cpp17Hibás válasz 0/4079ms3832 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    cin.tie(0);
    iostream::sync_with_stdio(0);
    int n; cin >> n;
    map<int,long> req;
    set<int> order;
    vector<int> l(n);
    for(int i = 0;i < n; i++)
    {
        cin >> l[i];
        order.insert(l[i]);
    }
    int x;
    for(int i = 0;i < n; i++)
    {
        cin >> x;
        if(req[l[i]] == NULL)
        {
            req[l[i]] = x;
        }
        else
        {
            req[l[i]]+=x;
        }
    }
    long time = 0;
    long exp = 0;
    for(int y : order)
    {
        if(y>exp+req[y])
        {
            exp+=req[y];
            time+=2*req[y];
        }
        else if(y <= exp)
        {
            exp+=req[y];
            time+=req[y];
        }
        else
        {
            time+=2*(y-exp-1)+req[y]-y+exp+1; //(y-exp) -> difference required to get faster (req[y]-y+exp) -> requirements after remving used
            exp+=req[y];
        }
        //cout << time << "-" << exp <<endl;
    }
    cout << time;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Elfogadva0/01ms316 KiB
2Hibás válasz0/017ms1588 KiB
3Hibás válasz0/21ms316 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/24ms316 KiB
6Hibás válasz0/27ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/22ms316 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/31ms316 KiB
11Hibás válasz0/31ms316 KiB
12Hibás válasz0/31ms316 KiB
13Hibás válasz0/42ms316 KiB
14Hibás válasz0/41ms316 KiB
15Hibás válasz0/248ms3216 KiB
16Hibás válasz0/264ms3376 KiB
17Hibás válasz0/252ms3124 KiB
18Hibás válasz0/279ms3832 KiB