233152026-01-19 09:51:26algoproBenzinkút üzemeltetés (55)cpp17Elfogadva 55/553ms1588 KiB
// UUID: f4e17eb1-cab9-4463-ab7b-2d70c3dfd8fa
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, k;
	cin >> n >> k;
	vector<pair<int, int>>tavolsagok(n+1);
	for(int i = 1; i < n+1; i++){
		cin >> tavolsagok[i].first >> tavolsagok[i].second;
	}
	tavolsagok[0].first = tavolsagok[1].first-k;
	tavolsagok[0].second = 0;
	vector<int>dp(n+1);
	vector<vector<int>>melyikek(n+1);
	dp[0] = 0;
	for(int i = 1; i <= n; i++){
		for(int j = i-1; j > -1; j--){
			if(tavolsagok[i].first-tavolsagok[j].first >= k){
				dp[i] = max(dp[i-1], dp[j]+tavolsagok[i].second);
				if(dp[i-1] < dp[j]+tavolsagok[i].second){
					melyikek[i] = melyikek[j];
					melyikek[i].push_back(i);
				} else{
					melyikek[i] = melyikek[i-1];
				}
				break;
			}
		}
	}
	cout << dp[n] << "\n" << melyikek[n].size();
	for(auto x : melyikek[n]){
		cout << " " << x;
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms508 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/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/32ms564 KiB
13Elfogadva4/42ms820 KiB
14Elfogadva4/42ms820 KiB
15Elfogadva5/52ms1076 KiB
16Elfogadva6/62ms1332 KiB
17Elfogadva6/63ms1332 KiB