254022026-02-19 19:57:03lorantbBányász RPG (40 pont)cpp17Elfogadva 40/4079ms5220 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long

void solve(int a, int val, int &kt, int &sum, int&ans) {
	if(a+kt <= sum) {
		kt+= a;
		ans += val*a;
	}
	else {
		ans += val*(sum-kt);
		kt = sum;
	}
}

signed main() {
	int n; cin >> n;
	int sum = 0;
	vector<vector<int>> x(n, vector<int>(2));
	for(int i = 0; i < n; i++) cin >> x[i][0];
	for(int i = 0; i < n; i++) {
		cin >> x[i][1];
		sum += x[i][1];
	}
	sort(begin(x), end(x));
	int ans = 0;
	int kt = 0;
	for(int i = 0; i < n; i++) {
		if(x[i][0] > kt) solve(x[i][0] - kt, 2, kt,sum,ans);
		if(kt == sum) break;
		solve(x[i][1], 1, kt,sum,ans);
		if(kt == sum) break;
	}
	cout << ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/014ms1260 KiB
3Elfogadva2/21ms500 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/212ms1112 KiB
6Elfogadva2/226ms2104 KiB
7Elfogadva2/23ms564 KiB
8Elfogadva2/24ms572 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms332 KiB
13Elfogadva4/42ms324 KiB
14Elfogadva4/41ms528 KiB
15Elfogadva2/246ms3156 KiB
16Elfogadva2/259ms3844 KiB
17Elfogadva2/250ms3396 KiB
18Elfogadva2/279ms5220 KiB