206002026-01-07 18:52:52algoproBányász RPG (40 pont)cpp17Accepted 40/4065ms2356 KiB
// UUID: ec0b97e3-5a0d-4920-95c3-af2554a38ac8
#include <bits/stdc++.h>
using namespace std;

int main() {
	long long N; cin>>N;
	vector<pair<long long, long long>> V(N);
	for(long long i=0; i<N; i++) cin>>V[i].first;
	for(long long i=0; i<N; i++) cin>>V[i].second;
	sort(V.begin(), V.end());
	vector<long long> prefix(N+1);
	prefix[1]=V[0].second;
	for(long long i=1; i<N; i++) prefix[i+1]=prefix[i]+V[i].second;
	long long ketpercesek=0;
	for(long long i=N-1; i>=0; i--)
	{
		if(V[i].first>ketpercesek+prefix[i])
		{
			if(ketpercesek+prefix[i]+V[i].second>V[i].first)
			{
				ketpercesek+=V[i].first-(ketpercesek+prefix[i]);
			}
			else
			{
				ketpercesek+=V[i].second;
			}
			
		}
	}
	cout<<ketpercesek+prefix[N];
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms316 KiB
2Accepted0/012ms564 KiB
3Accepted2/21ms316 KiB
4Accepted2/21ms508 KiB
5Accepted2/210ms612 KiB
6Accepted2/221ms896 KiB
7Accepted2/23ms316 KiB
8Accepted2/24ms556 KiB
9Accepted3/31ms500 KiB
10Accepted3/31ms404 KiB
11Accepted3/31ms316 KiB
12Accepted3/31ms316 KiB
13Accepted4/41ms316 KiB
14Accepted4/41ms316 KiB
15Accepted2/237ms1396 KiB
16Accepted2/250ms1972 KiB
17Accepted2/241ms1516 KiB
18Accepted2/265ms2356 KiB