9449 | 2024. 02. 21 20:42:45 | Vkrisztian01 | Bányász RPG (40 pont) | cpp11 | Elfogadva 40/40 | 67ms | 6500 KiB |
#include <iostream>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
long long int nulla=0;
long long int n,k;
long long int ido=0,pont=0;
vector<pair<long long int,long long int> > lista;
int main()
{
cin>>n;
lista.resize(n);
for(int i=0;i<n;i++) cin>>lista[i].first;
for(int i=0;i<n;i++) cin>>lista[i].second;
sort(lista.begin(),lista.end());
int eleje=0,vege=n-1;
while(eleje<=vege)
{
while(vege>=eleje && pont<lista[eleje].first)
{
k=max(nulla,min(lista[eleje].first-pont,lista[vege].second));
//cout<<k;
ido+=2*k;
pont+=k;
lista[vege].second-=k;
if(lista[vege].second==0) --vege;
}
ido+=lista[eleje].second;
pont+=lista[eleje].second;
++eleje;
}
cout<<ido;
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1748 KiB | |||
2 | Elfogadva | 0/0 | 14ms | 2216 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 2124 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2220 KiB | |||
5 | Elfogadva | 2/2 | 12ms | 2664 KiB | |||
6 | Elfogadva | 2/2 | 23ms | 3400 KiB | |||
7 | Elfogadva | 2/2 | 4ms | 2660 KiB | |||
8 | Elfogadva | 2/2 | 6ms | 2956 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3064 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3272 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3268 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3512 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3736 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 3808 KiB | |||
15 | Elfogadva | 2/2 | 39ms | 5036 KiB | |||
16 | Elfogadva | 2/2 | 52ms | 5776 KiB | |||
17 | Elfogadva | 2/2 | 43ms | 5504 KiB | |||
18 | Elfogadva | 2/2 | 67ms | 6500 KiB |