216482026-01-13 17:43:44algoproBenzinkút üzemeltetés (55)cpp17Hibás válasz 34/553ms1588 KiB
// UUID: b0690c63-adf2-4769-ac76-4ae4c6b69a85
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, k; cin >> n >> k;
	vector<pair<int, int>> stations(n + 1);
	for(int i = 1; i <= n; i++){
		cin >> stations[i].first >> stations[i].second;
	}
	vector<vector<int>> indexes(n + 1);
	vector<int> dp(n + 1);
	indexes[0]={};
	for(int i = 1; i <= n; i++){
		if(stations[i].first - stations[1].first >= k){
			int prev = 0;
			int maxdist = stations[i].first - k;
			for(int j = 0; stations[j].first <= maxdist; j++){
				prev = j;
			}
			if(dp[i - 1] < stations[i].second + dp[prev]){
				dp[i] = dp[prev] + stations[i].second;
				indexes[i] = indexes[prev];
				indexes[i].push_back(i);
			}
			else{
				dp[i] = dp[i - 1];
				indexes[i] = indexes[i - 1];
			}
				
		}
		else{
			dp[i] = max(dp[i - 1], stations[i].second);
			indexes[i].push_back(i);
		}
	}
	cout << dp[n] << endl;
	cout <<  indexes[n].size() << " ";
	for(auto u : indexes[n]){
		cout << u << " ";
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base34/55
1Elfogadva0/01ms508 KiB
2Elfogadva0/03ms1588 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Hibás válasz0/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms380 KiB
11Elfogadva3/31ms508 KiB
12Hibás válasz0/32ms756 KiB
13Elfogadva4/42ms892 KiB
14Hibás válasz0/42ms820 KiB
15Hibás válasz0/52ms1076 KiB
16Elfogadva6/62ms1332 KiB
17Hibás válasz0/62ms1408 KiB