3646 2023. 03. 01 16:58:06 nkdorka1212 Benzinkút üzemeltetés (55) cpp17 Elfogadva 55/55 4ms 3872 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n,k;
    cin>>n>>k;
    vector<pair<int,int>>kutak(n+1,{0,0});  //tav , haszon
    vector<int>dp(n+1,0);
    vector<int>szulo(n+1,0);
    for(int i=1;i<=n;i++)
    {
        cin>>kutak[i].first>>kutak[i].second;
    }
    dp[1]=kutak[1].second;
    for(int i=2;i<=n;i++)
    {
        dp[i]=kutak[i].second;
        for(int j=i-1;j>=1;j--)
        {
            if(kutak[i].first-kutak[j].first>=k)
            {
                if(dp[j]+kutak[i].second > dp[i])
                {
                    dp[i]=dp[j]+kutak[i].second;
                    szulo[i]=j;
                }
            }
        }
    }
    int utso=1;
    for(int i=2;i<=n;i++)
    {
        if(dp[i]>dp[utso])
        {
            utso=i;
        }
    }
    cout<<dp[utso]<<"\n";
    stack<int>mo;
    mo.push(utso);
    while(szulo[utso]!=0)
    {
        mo.push(szulo[utso]);
        utso=szulo[utso];
    }
    cout<<mo.size()<<" ";
    while(!mo.empty())
    {
        cout<<mo.top()<<" ";
        mo.pop();
    }

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 55/55
1 Elfogadva 0/0 3ms 1808 KiB
2 Elfogadva 0/0 4ms 2016 KiB
3 Elfogadva 3/3 3ms 2240 KiB
4 Elfogadva 3/3 3ms 2428 KiB
5 Elfogadva 3/3 2ms 2508 KiB
6 Elfogadva 3/3 3ms 2760 KiB
7 Elfogadva 3/3 3ms 2992 KiB
8 Elfogadva 3/3 3ms 3044 KiB
9 Elfogadva 3/3 3ms 3184 KiB
10 Elfogadva 3/3 3ms 3300 KiB
11 Elfogadva 3/3 3ms 3420 KiB
12 Elfogadva 3/3 3ms 3520 KiB
13 Elfogadva 4/4 3ms 3752 KiB
14 Elfogadva 4/4 3ms 3872 KiB
15 Elfogadva 5/5 4ms 3716 KiB
16 Elfogadva 6/6 4ms 3684 KiB
17 Elfogadva 6/6 4ms 3684 KiB