222712026-01-14 19:38:46ProgramozoRokaBenzinkút üzemeltetés (55)cpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms508 KiB
2Accepted0/02ms316 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms316 KiB
8Accepted3/31ms316 KiB
9Accepted3/31ms316 KiB
10Accepted3/31ms316 KiB
11Accepted3/31ms316 KiB
12Accepted3/31ms316 KiB
13Accepted4/41ms316 KiB
14Accepted4/42ms408 KiB
15Accepted5/52ms316 KiB
16Accepted6/62ms512 KiB
17Accepted6/62ms316 KiB