133702025-01-07 17:25:19SzorenyiZalanAndrasBenzinkút üzemeltetés (55)cpp17Hibás válasz 23/552ms1588 KiB
#include <iostream>
#include<algorithm>
#include<vector>
#include<climits>

using namespace std;
using ll = long long;

#define endl "\n";
struct kut {
	int hely;
	int hoz;
};
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	int n, m;
	cin >> n >> m ;
	vector<kut>kutak(n+1);
	vector<int>dp(n+1);
	dp[0] = 0;
	vector<vector<int>>ans(n+1);
	for (int i = 1;i <= n;i++) {
		cin >> kutak[i].hely >> kutak[i].hoz;
	}
	for (int i = 1;i <= n;i++) {
		for (int j = i - 1;j >= 0;j--) {
			if (kutak[i].hely - m >= kutak[j].hely) {
				if (dp[i-1] > dp[j] + kutak[i].hoz) {
					dp[i] = dp[i - 1];
					ans[i] = ans[i - 1];
					break;
				}
				else {
					dp[i] = dp[j] + kutak[i].hoz;
					ans[i] = ans[j];
					ans[i].push_back(i);
					break;
				}
			}
		}
	}
	cout << dp[n] <<"\n"<< ans[n].size()<<" ";
	for (int i = 0;i < ans[n].size();i++) {
		cout << ans[n][i] << " ";
	}

}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base23/55
1Elfogadva0/01ms500 KiB
2Hibás válasz0/02ms1588 KiB
3Elfogadva3/31ms316 KiB
4Hibás válasz0/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms508 KiB
8Hibás válasz0/31ms316 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/31ms316 KiB
11Hibás válasz0/31ms316 KiB
12Hibás válasz0/31ms564 KiB
13Hibás válasz0/41ms956 KiB
14Hibás válasz0/42ms820 KiB
15Elfogadva5/52ms1076 KiB
16Elfogadva6/62ms1332 KiB
17Hibás válasz0/62ms1332 KiB