202162026-01-05 13:00:58BikficcBenzinkút üzemeltetés (55)cpp17Elfogadva 55/552ms408 KiB
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n, k;
    cin >> n >> k;
    vector <int> tav(n+1), h(n+1), maxh(n+1);
    vector <bool> epit(n+1);
    vector <int> index;
    for(int i=1;i<=n;i++)
    {
        cin >> tav[i] >> h[i];
    }

    maxh[1] = h[1];
    epit[1] = true;
    int j;
    for(int i=2;i<=n;i++)
    {
        j=i-1;
        while (j>=1 && tav[i]-tav[j] < k)
        {
            j--;
        }
        if(maxh[i-1] > maxh[j] + h[i])
        {
            maxh[i] = maxh[i-1];
        }
        else
        {
            maxh[i] = maxh[j] + h[i];
            epit[i] = true;
        }
    }

    cout << maxh[n]<<endl;
    int i=n;
    while(i>0)
    {
        if(epit[i])
        {
            index.push_back(i);
            j=i-1;
            while (j>=1 && tav[i]-tav[j] < k)
            {
               j--;
            }
            i = j;
        }
        else i--;
    }
    cout <<index.size() << " ";
    for (auto it=index.end()-1; it>=index.begin(); it--)
    {
        cout << *it << " ";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/02ms316 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms332 KiB
7Elfogadva3/31ms332 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/42ms316 KiB
15Elfogadva5/51ms344 KiB
16Elfogadva6/61ms316 KiB
17Elfogadva6/62ms408 KiB