212552026-01-12 17:32:18algoproBenzinkút üzemeltetés (55)cpp17Elfogadva 55/552ms560 KiB
// UUID: e91d5ceb-a0d4-44e3-b191-f447bd8dc540
#include <bits/stdc++.h>
using namespace std;

int main() {
	ios::sync_with_stdio(false);
    cin.tie(0);
    int n, k;
    cin>>n>>k;
    vector<int>t(n+1), h(n+1), prev(n+1, 0), dp(n+1, 0), kivalaszt;
    vector<bool> kell(n+1);
    for(int i=1;i<=n;i++)
    {
        cin>>t[i]>>h[i];
    }
    prev[1]=0;
    for(int i=2;i<=n;i++)
    {
        for(int j=i-1;j>0;j--)
        {
            if(t[i]-t[j]>=k)
            {
                prev[i]=j;
                break;
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        int kelll=h[i]+dp[prev[i]], kihagy=dp[i-1];
        if(kelll>kihagy)
        {
            dp[i]=kelll;
            kell[i]=true;
        }
        else
        {
            dp[i]=kihagy;
        }
    }
    for(int i=n;i>0;)
    {
        if(kell[i])
        {
            kivalaszt.push_back(i);
            i=prev[i];
        }
        else
        {
            i--;
        }
    }
    reverse(kivalaszt.begin(), kivalaszt.end());
    cout<<dp[n]<<'\n';
    cout<<kivalaszt.size()<<' ';
    for(int i=0;i<kivalaszt.size();i++)
    {
        cout<<kivalaszt[i]<<' ';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms560 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms508 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva5/51ms316 KiB
16Elfogadva6/62ms316 KiB
17Elfogadva6/61ms316 KiB