236232026-01-26 16:39:39algoproBenzinkút üzemeltetés (55)cpp17Elfogadva 55/553ms1588 KiB
// UUID: 7b245455-db3d-4e23-a73b-53eec8f2f8ec
#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, k;
    cin >> n >> k;
    vector<pair<long long, long long>> dis(n+1);
    for(int i = 1; i <= n; i++){
        cin >> dis[i].first >> dis[i].second;
    }
    dis[0].first = dis[1].first - k;
    dis[0].second = 0;

    vector<long long> dp(n+1);
    vector <vector<int>> ans(n+1);
    dp[0] = 0;
    for(int i = 1; i <= n; i++){
        for(int j = i-1; j >-1; j--){
            if(dis[i].first - dis[j].first >= k){
                dp[i] = max(dp[i-1], dp[j] + dis[i].second);
                if(dp[i-1] < dp[j] + dis[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/02ms1588 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms508 KiB
6Elfogadva3/31ms508 KiB
7Elfogadva3/31ms348 KiB
8Elfogadva3/31ms508 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms332 KiB
11Elfogadva3/31ms508 KiB
12Elfogadva3/32ms748 KiB
13Elfogadva4/42ms820 KiB
14Elfogadva4/42ms820 KiB
15Elfogadva5/53ms1076 KiB
16Elfogadva6/62ms1332 KiB
17Elfogadva6/62ms1332 KiB