236322026-01-26 17:37:22algoproBenzinkút üzemeltetés (55)cpp17Elfogadva 55/554ms2868 KiB
// UUID: 90a76444-1722-4141-99f7-b1cff9c1061d
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, k;
	cin >> n >> k;

	vector<pair<long long, long long>> tavolsag(n + 1);

	for(int i=1;i <= n; i++){
		cin >> tavolsag[i].first >> tavolsag[i].second;
	}

	tavolsag[0].first = tavolsag[1].first - k;
	tavolsag[0].second = 0;
	vector<long long> dp(n+1);
	vector<vector<long long>> ans(n+1);
	dp[0] = 0;
	for(int i = 1; i <= n; i++){
		for(int j = i - 1; j > -1; j--){
			if(tavolsag[i].first - tavolsag[j].first >= k){
				dp[i] = max(dp[i - 1], dp[j] + tavolsag[i].second);
				if(dp[i - 1] < dp[j] + tavolsag[i].second){
					ans[i] = ans[j];
					ans[i].push_back(i);
				}
				else ans[i] = ans[i - 1];
				break;
			}
		}
	}
	cout << dp[n] << "\n" << ans[n].size();
	for(int x : ans[n]){
		cout << " " << x;
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/04ms2868 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms508 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms336 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva3/32ms316 KiB
12Elfogadva3/32ms1016 KiB
13Elfogadva4/42ms1332 KiB
14Elfogadva4/42ms1592 KiB
15Elfogadva5/53ms1844 KiB
16Elfogadva6/63ms2356 KiB
17Elfogadva6/63ms2748 KiB