140692025-01-09 18:11:18ggeerrggoo2Benzinkút üzemeltetés (55)cpp17Elfogadva 55/552ms532 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n, k;cin >> n>> k;
    vector<int>d(n+1);
    vector<int>h(n+1);
    for(int i=1;i<=n;i++)
    {
        cin >> d[i] >> h[i];
    }
    vector<int>dp(n+1);
    vector<bool>use(n+1);
    dp[1] = h[1];
    use[1] = 1;
    for(int i=2;i<=n;i++)
    {
        int prev = 0;
        for(int j=i-1;j>0;j--)
        {
            if(d[i]-d[j] >= k) 

            {
                prev = j;
                break;
            }
        }
        if(dp[i-1] > dp[prev] + h[i])
        {
            dp[i] = dp[i-1];
        }
        else
        {
            dp[i] = dp[prev] + h[i];
            use[i] = 1;
        }
    }
    cout << dp[n]<<endl;
    vector<int>use2;
    int cnt=0;
    int i=n;
    while(i>0)
    {
        if(use[i])
        {
            cnt++;
            use2.push_back(i);
            int prev = 0;
            for(int j=i-1;j>0;j--)
            {
                if(d[i]-d[j] >= k) 

                {
                    prev = j;
                    break;
                }
            }
            i = prev;
        }
        else i--;
    }
    cout <<cnt;
    reverse(use2.begin(), use2.end());
    for(auto i : use2)
    {
        cout << " " << i;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/02ms316 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms328 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms532 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva5/51ms404 KiB
16Elfogadva6/61ms316 KiB
17Elfogadva6/61ms316 KiB