140992025-01-09 18:42:18MatematikaBenzinkút üzemeltetés (55)cpp17Accepted 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

*/
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms316 KiB
2Accepted0/04ms316 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms316 KiB
8Accepted3/31ms328 KiB
9Accepted3/31ms316 KiB
10Accepted3/31ms316 KiB
11Accepted3/31ms316 KiB
12Accepted3/32ms316 KiB
13Accepted4/42ms316 KiB
14Accepted4/42ms316 KiB
15Accepted5/53ms436 KiB
16Accepted6/63ms316 KiB
17Accepted6/64ms500 KiB