133752025-01-07 17:37:15SzorenyiZalanAndrasBenzinkút üzemeltetés (55)cpp17Elfogadva 55/553ms1616 KiB
#include <iostream>
#include<algorithm>
#include<vector>
#include<climits>

using namespace std;
using ll = long long;

#define endl "\n";


int main() {
	int n, k;
	cin >> n >> k;
	vector<int> hely = { -1 * k - 1 };
	vector<int> hozam = { 0 };
	for (int i = 0; i < n;i++) {
		int a, b;
		cin >> a >> b;
		hely.push_back(a);
		hozam.push_back(b);
	}

	vector<int> dp(n + 1);
	dp[0] = 0;
	vector<vector<int>> ans(n + 1);
	for (int i = 1; i <= n;i++) {
		for (int j = i - 1; j >= 0; j--) {
			if (hely[j] <= hely[i] - k) {
				if (dp[i - 1] > dp[j] + hozam[i]) {
					dp[i] = dp[i - 1];
					ans[i] = ans[i - 1];
					break;
				}
				else {
					dp[i] = dp[j] + hozam[i];
					ans[i] = ans[j];
					ans[i].push_back(i);
					break;
				}

			}

		}
	}
	cout << dp[n] << endl;
	cout << ans[n].size() << " ";
	for (int x : ans[n]) cout << x << " ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms1588 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms508 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms508 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms564 KiB
13Elfogadva4/42ms820 KiB
14Elfogadva4/42ms820 KiB
15Elfogadva5/52ms1268 KiB
16Elfogadva6/62ms1572 KiB
17Elfogadva6/63ms1616 KiB