234842026-01-23 17:55:50matemakaiBenzinkút üzemeltetés (55)cpp17Elfogadva 55/552ms524 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, k;
	cin >> n >> k;
	vector<int> t(n), h(n);
	for (int i = 0; i < n; ++i) {
		cin >> t[i] >> h[i];
	}
	
	vector<pair<int, int>> dp(n);

	int curr_idx = 0;

	for (int i = 0; i < n; ++i) {
		dp[i].first = h[i];
		dp[i].second = -1;
		for (int j = 1; j <= i; ++j) {
			if (t[i] - t[i - j] >= k) {
				if (dp[i - j].first + h[i] > dp[i].first) {
					dp[i].first = dp[i - j].first + h[i];
					dp[i].second = i - j;
				}
			}
		}

		if (dp[i] > dp[curr_idx]) {
			curr_idx = i;
		}
	}

	vector<int> ans;

	while (curr_idx != -1) {
		ans.push_back(curr_idx);
		curr_idx = dp[curr_idx].second;
	}

	cout << dp[ans[0]].first << endl;
	cout << ans.size() << " ";
	for (auto it = ans.rbegin(); it != ans.rend(); ++it) {
		cout << *it + 1 << " ";
	}
	cout << endl;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/02ms316 KiB
3Elfogadva3/31ms500 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms320 KiB
6Elfogadva3/31ms508 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/32ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms332 KiB
11Elfogadva3/31ms508 KiB
12Elfogadva3/31ms524 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/42ms316 KiB
15Elfogadva5/52ms316 KiB
16Elfogadva6/62ms508 KiB
17Elfogadva6/62ms316 KiB