222712026-01-14 19:38:46ProgramozoRokaBenzinkút üzemeltetés (55)cpp17Elfogadva 55/552ms512 KiB
#include <iostream>
#include<vector>
#include <algorithm>
using namespace std;


int main()
{
	int n, k;
	cin >> n >> k;
	vector<int> loc(n);
	vector<int> pro(n);
	vector<int> elozo(n, -1);
	for (int i = 0; i < n; ++i)
	{
		cin >> loc[i] >> pro[i];
		int j = i - 1;
		while (j > -1 and loc[i] - loc[j] < k) --j;
		if (j > -1)
		{
			auto it = max_element(pro.begin(), pro.begin() + j + 1);
			pro[i] += *it;
			elozo[i] = it - pro.begin();
		}
		else elozo[i] = -1;
	}
	auto it = max_element(pro.begin(), pro.end());
	cout << *it <<endl;
	vector<int> index;
	int i = it - pro.begin();
	while (i != -1)
	{
		index.push_back(i);
		i = elozo[i];
	}
	cout << index.size()<<" ";
	for (i = index.size() - 1; i >= 0; --i) cout << index[i] + 1<<" ";
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms508 KiB
2Elfogadva0/02ms316 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/42ms408 KiB
15Elfogadva5/52ms316 KiB
16Elfogadva6/62ms512 KiB
17Elfogadva6/62ms316 KiB