3003 2023. 02. 08 07:59:27 bzsofia Benzinkút üzemeltetés (55) cpp11 Elfogadva 55/55 3ms 3824 KiB
#include <iostream>
#include <vector>
#include <deque>

using namespace std;

struct adat
{
    int elott, tav, sum;
    bool epit;
};

int n, i, j, mintav;
deque <int> v;

int main()
{
    cin>>n>>mintav;
    vector <adat> x(n+1);

    for (i=1; i<=n; ++i)
    {
        cin>>x[i].tav>>x[i].sum;

        j=i-1;
        while (j>=1 && x[i].tav-x[j].tav<mintav)
        {
            --j;
        }

        if (x[j].sum+x[i].sum>x[i-1].sum)
        {
            x[i].epit=1;
            x[i].sum+=x[j].sum;
            if (x[j].epit) x[i].elott=j;
            else x[i].elott=x[j].elott;

            if (i==n) v.push_back(n);
        }else
        {
            x[i].sum=x[i-1].sum;
            if (x[i-1].epit) x[i].elott=i-1;
            else x[i].elott=x[i-1].elott;
            x[i].tav=x[i-1].tav;
        }
    }

    cout<<x[n].sum<<"\n";

    i=n;
    while (x[i].elott!=0)
    {
        v.push_front(x[i].elott);
        i=x[i].elott;
    }

    cout<<v.size()<<" ";
    for (auto &e:v)
    {
        cout<<e<<" ";
    }

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 55/55
1 Elfogadva 0/0 3ms 1808 KiB
2 Elfogadva 0/0 3ms 2080 KiB
3 Elfogadva 3/3 3ms 2272 KiB
4 Elfogadva 3/3 3ms 2476 KiB
5 Elfogadva 3/3 2ms 2452 KiB
6 Elfogadva 3/3 3ms 2688 KiB
7 Elfogadva 3/3 3ms 2896 KiB
8 Elfogadva 3/3 3ms 2976 KiB
9 Elfogadva 3/3 3ms 3064 KiB
10 Elfogadva 3/3 3ms 3144 KiB
11 Elfogadva 3/3 3ms 3276 KiB
12 Elfogadva 3/3 3ms 3428 KiB
13 Elfogadva 4/4 3ms 3604 KiB
14 Elfogadva 4/4 3ms 3724 KiB
15 Elfogadva 5/5 3ms 3744 KiB
16 Elfogadva 6/6 3ms 3696 KiB
17 Elfogadva 6/6 3ms 3824 KiB