155952025-02-20 20:21:40999Bányász RPG (40 pont)cpp17Elfogadva 40/4065ms1776 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
#define int long long

const int INF = 1e12;

int randi(int b){
    return rand()%(b)+1;
}

signed main() {
    //srand(time(0));
    int cnt=0;
    int n;cin>>n;
    //n=randi(10);
    vector<pair<int,int>> v(n);
    for(auto&[i,j]:v)cin>>i;//i=randi(50);
    for(auto&[i,j]:v)cin>>j;//j=randi(50);
    sort(v.begin(),v.end());
    int j = n-1,xp=0;
    for(int i = 0;i<=j;i++){
        while(xp+v[j].second<v[i].first&&j>=i){
            xp+=v[j].second;
            cnt+=2*v[j].second;
            j--;
        }
        if(j>=i){
            v[j].second-=max(v[i].first-xp,0LL);
            cnt+=max(0LL,(v[i].first-xp))*2+v[i].second;
            xp+=max(0LL,(v[i].first-xp))+v[i].second;
            if(v[j].second==0)j--;
        }
    }cout<<cnt<<endl;
}
/*
cnt=0
xp=0
i         j
6 8 20 41 44
48 40 7 31 8  
*/
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms508 KiB
2Elfogadva0/013ms564 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/29ms568 KiB
6Elfogadva2/220ms892 KiB
7Elfogadva2/23ms452 KiB
8Elfogadva2/24ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva2/237ms1192 KiB
16Elfogadva2/250ms1464 KiB
17Elfogadva2/241ms1264 KiB
18Elfogadva2/265ms1776 KiB