212422026-01-12 17:25:08algoproBenzinkút üzemeltetés (55)cpp17Elfogadva 55/553ms1592 KiB
// UUID: e3835b1d-59d9-492c-948d-1f445b3bb4f4
#include <bits/stdc++.h>
using namespace std;

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

    vector <pair<long long, long long>> tav(n+1);
    
    for (int i=1; i<=n; i++) {
        cin >> tav[i].first >> tav[i].second;
    }
    tav[0].first=tav[1].first-k;
    tav[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 (tav[i].first-tav[j].first>=k) {
               dp[i]=max(dp[i-1], dp[j]+tav[i].second);
               if (dp[i-1] < dp[j]+tav[i].second) {
                    ans[i]= ans[j];
                    ans[i].push_back(i);
               }
               else ans[i]=ans[i-1];
               //cout <<dp[i] << " "<< dp[i-1] << " | " << j << " + " << i << "\n";
               break; 
           }
       }
       //cout << "\n"; 

    }
    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/03ms1592 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/31ms564 KiB
13Elfogadva4/42ms920 KiB
14Elfogadva4/42ms820 KiB
15Elfogadva5/52ms1076 KiB
16Elfogadva6/62ms1332 KiB
17Elfogadva6/62ms1332 KiB