140682025-01-09 18:09:39MatematikaBenzinkút üzemeltetés (55)cpp17Hibás válasz 18/552ms508 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);
    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!=0; i=p[i])
        vec.push_back(i);
    reverse(vec.begin(),vec.end());
    cout << vec.size() << " ";
    for(auto z:vec)
        cout << z+1 << " ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base18/55
1Elfogadva0/01ms316 KiB
2Hibás válasz0/02ms316 KiB
3Hibás válasz0/31ms316 KiB
4Hibás válasz0/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Hibás válasz0/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Hibás válasz0/31ms508 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/31ms316 KiB
11Hibás válasz0/31ms316 KiB
12Hibás válasz0/31ms436 KiB
13Hibás válasz0/42ms436 KiB
14Hibás válasz0/42ms316 KiB
15Hibás válasz0/52ms316 KiB
16Elfogadva6/62ms328 KiB
17Elfogadva6/62ms316 KiB