188922025-11-08 23:34:49ercseferencBányász RPG (40 pont)cpp17Elfogadva 40/4071ms2356 KiB
#include <bits/stdc++.h>
using namespace std;
struct erc{long long ido,db,ind;};
bool sort1(erc n, erc m){
    if(n.ido==m.ido)return n.db>m.db;
    else return n.ido<m.ido;}
int main()
{
    int n; cin>>n; long long t=0,s=0; vector<erc>a(n);
    for(int i=0; i<n; i++){cin>>a[i].ido; a[i].ind=i;}
    for(int i=0; i<n; i++)cin>>a[i].db;
    int elso=0,utso=n-1; bool lehet=1;
    sort(a.begin(), a.end(), sort1);
    while(lehet){
        if(elso>utso)lehet=0;
        if(elso<n && t<a[elso].ido){
            if(a[utso].db>0){
                int x=min(a[elso].ido-t, a[utso].db);
                a[utso].db-=x; s+=2*x; t+=x;}
            else if(utso>0)utso--;}
        else if(elso<n){t+=a[elso].db; s+=a[elso].db; a[elso].db=0; elso++;}
        else elso++;}
    cout<<s;
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms508 KiB
2Elfogadva0/013ms748 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/210ms716 KiB
6Elfogadva2/223ms1076 KiB
7Elfogadva2/23ms316 KiB
8Elfogadva2/24ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms508 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva2/241ms1592 KiB
16Elfogadva2/254ms1976 KiB
17Elfogadva2/246ms1644 KiB
18Elfogadva2/271ms2356 KiB