254022026-02-19 19:57:03lorantbBányász RPG (40 pont)cpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms316 KiB
2Accepted0/014ms1260 KiB
3Accepted2/21ms500 KiB
4Accepted2/21ms316 KiB
5Accepted2/212ms1112 KiB
6Accepted2/226ms2104 KiB
7Accepted2/23ms564 KiB
8Accepted2/24ms572 KiB
9Accepted3/31ms316 KiB
10Accepted3/31ms316 KiB
11Accepted3/31ms316 KiB
12Accepted3/31ms332 KiB
13Accepted4/42ms324 KiB
14Accepted4/41ms528 KiB
15Accepted2/246ms3156 KiB
16Accepted2/259ms3844 KiB
17Accepted2/250ms3396 KiB
18Accepted2/279ms5220 KiB