230722026-01-16 11:38:45KassayAkosBenzinkút üzemeltetés (55)cpp17Wrong answer 18/552ms508 KiB
#include <bits/stdc++.h>

using namespace std;

struct hely
{
    int tav, hasz;
};

int main()
{
    int n, k;
    cin>>n>>k;
    vector <hely> p(n);
    for (int i=0;i<n;i++)
    {
        cin>>p[i].tav>>p[i].hasz;
    }
    sort(p.begin(), p.end(), [](const hely &a, const hely &b)
    {
        return a.tav < b.tav;
    });

    vector <int> maxh(n,0);
    vector <int> epit(n, 0);
    vector <int> honnan(n, 0);
    maxh[0]=p[0].hasz;
    epit[0]=1;
    int j, akthasz;
    for (int i=1;i<n;i++)
    {
        j=i-1;
        while (j>=0 && p[i].tav-p[j].tav<k)
        {
            j--;
        }
        akthasz=p[i].hasz;
        if (j>=0)
        {
            akthasz+=maxh[j];
        }
        if (akthasz>maxh[i-1])
        {
            maxh[i]=akthasz;
            epit[i]=1;
            honnan[i]=j;
        }
        else
        {
            maxh[i]=maxh[i-1];
        }
    }
    int maxi=INT_MIN;
    for (int i=n-1;i>=0;i--)
    {
        maxi=max(maxi,maxh[i]);
    }
    /*
5 20
10 10
20 40
30 10
40 20
50 30
    */
    cout<<maxi<<endl;
    vector <int> megoldas;
    int i=n-1;
    while (i>0)
    {
        if (epit[i]==1 && maxh[i]==p[i].hasz+(honnan[i]>0 ? maxh[honnan[i]] : 0))
        {
            megoldas.push_back(i+1);
            i=honnan[i];
        }
        else
        {
            i--;
        }
    }
    reverse (megoldas.begin(), megoldas.end());
    int len=megoldas.size();
    cout<<len<< " ";
    for (int i=0;i<len;i++)
    {
        cout<<megoldas[i]<<" ";
    }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base18/55
1Accepted0/01ms316 KiB
2Wrong answer0/01ms316 KiB
3Wrong answer0/31ms316 KiB
4Wrong answer0/31ms316 KiB
5Accepted3/31ms316 KiB
6Wrong answer0/31ms316 KiB
7Accepted3/31ms316 KiB
8Wrong answer0/31ms316 KiB
9Wrong answer0/32ms316 KiB
10Wrong answer0/31ms316 KiB
11Wrong answer0/31ms316 KiB
12Wrong answer0/31ms316 KiB
13Wrong answer0/41ms316 KiB
14Wrong answer0/41ms316 KiB
15Wrong answer0/51ms508 KiB
16Accepted6/61ms316 KiB
17Accepted6/61ms316 KiB