242832026-02-07 22:59:35ProgramozoRokaBányász RPG (40 pont)cpp17Elfogadva 40/4027ms1076 KiB
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
#pragma GCC optimize("unroll-loops")

#include <iostream>
#include<vector>
#include <algorithm>

using namespace std;

struct anyag
{
	int l;
	int m;
};
int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int n;
	long long tme = 0, xp = 0;
	cin >> n;
	vector<anyag> a(n);
	for (int i = 0; i < n; ++i)cin >> a[i].l;
	for (int i = 0; i < n; ++i)cin >> a[i].m;
	sort(a.begin(), a.end(), [](const anyag& a, const anyag& b) {return a.l < b.l; });
	int bal = 0, jobb = n - 1;
	while (bal <= jobb)
	{
		if (xp >= a[bal].l)
		{
			tme += a[bal].m;
			xp += a[bal].m;
			++bal;
		}
		else
		{
			long long kell = a[bal].l - xp;
			long long banyaszhato = min((long long)a[jobb].m, kell);

			tme += banyaszhato * 2;
			xp += banyaszhato;
			a[jobb].m -= banyaszhato;

			if (a[jobb].m == 0) jobb--;
		}
	}
	cout << tme;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/06ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms500 KiB
5Elfogadva2/24ms520 KiB
6Elfogadva2/28ms564 KiB
7Elfogadva2/22ms452 KiB
8Elfogadva2/22ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva2/216ms824 KiB
16Elfogadva2/220ms820 KiB
17Elfogadva2/217ms820 KiB
18Elfogadva2/227ms1076 KiB