140992025-01-09 18:42:18MatematikaBenzinkút üzemeltetés (55)cpp17Elfogadva 55/554ms500 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;

int main()
{
    ios::sync_with_stdio(false); cin.tie(0);
    int n,k,ki=0,ideal=0; cin >> n >> k;
    vector<int> vec(n),haszon(n),dp(n),p(n,-1);
    for(int i=0; i<n; i++)
        cin >> vec[i] >> haszon[i];
    for(int i=0; i<n; i++)
    {
        dp[i]=haszon[i];
        for(int j=0; j<i; j++)
        {
            if(vec[j]+k<=vec[i])
            {
                if(dp[j]+haszon[i]>dp[i])
                {
                    dp[i]=dp[j]+haszon[i];
                    p[i]=j;
                }
            }
        }
    }
    for(int i=0; i<n; i++)
    {
        if(dp[i]>ki)
        {
            ki=dp[i];
            ideal=i;
        }
    }
    cout << ki << "\n";
    vec.resize(0);
    for(int i=ideal; i!=-1; i=p[i])
        vec.push_back(i);
    reverse(vec.begin(),vec.end());
    cout << vec.size() << " ";
    for(auto z:vec)
        cout << z+1 << " ";
    return 0;
}
/*

3 2
1 12
2 1
2 2

*/
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/04ms316 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms328 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/32ms316 KiB
13Elfogadva4/42ms316 KiB
14Elfogadva4/42ms316 KiB
15Elfogadva5/53ms436 KiB
16Elfogadva6/63ms316 KiB
17Elfogadva6/64ms500 KiB