162332025-04-14 18:48:09linhnkBányász RPG (40 pont)cpp17Időlimit túllépés 29/40400ms1076 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n, tap=0, a=0, b, t=0, x; cin>>n; b=n-1;
	vector<pair<int, int>> anyu(n);
	for(int i=0; i<n; i++){
		cin>>anyu[i].first;
	}
	for(int i=0; i<n; i++){
		cin>>anyu[i].second;
	}
	sort(anyu.begin(), anyu.end());
	while(a<=b){
		
		if(anyu[a].first<=tap){
			t+=anyu[a].second;
			tap+=anyu[a].second;
			a++;
		}
		else{
			while(tap<anyu[a].first-tap){
				if(anyu[b].second==0)
				b--;
				if(anyu[b].second<anyu[a].first-tap){
					t=t+2*anyu[b].second;
					tap+=anyu[b].second;
					anyu[b].second=0;
					b--;					
				}
				else{
					anyu[b].second-=(anyu[a].first-tap);
					t=t+2*(anyu[a].first-tap);
					tap+=anyu[a].first-tap;
						
				}
			}
		}
		/*cerr<<anyu[1].second<<endl;
		cerr<<a<<" "<<b<<" "<<tap<<" "<<t<<endl;*/
	}
	cout<<t;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base29/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/06ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/24ms364 KiB
6Elfogadva2/210ms564 KiB
7Elfogadva2/22ms316 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva3/31ms500 KiB
10Időlimit túllépés0/3400ms316 KiB
11Elfogadva3/31ms548 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms556 KiB
14Elfogadva4/41ms316 KiB
15Időlimit túllépés0/2400ms1004 KiB
16Időlimit túllépés0/2400ms1012 KiB
17Hibás válasz0/218ms820 KiB
18Időlimit túllépés0/2400ms1076 KiB