252752026-02-18 22:29:51999Múzeumi őrökcpp17Accepted 40/40200ms31928 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;
//#define int long long

signed main() {
    int n,e,u;cin>>n>>e>>u; //duhiti ont brusszel?
    u-=e;
    u++;
    vector<int> dp1(u+1,INT_MAX),dp2(u+1,INT_MAX);
    vector<vector<array<int,2>>*> v(u+1,nullptr),sp(u+1,nullptr);
    vector<array<int,2>> ertekek(n);
    for(int i = 0;i<n;i++){
        int a,b,c;cin>>a>>b>>c;
        a-=e;
        b-=e;
        b++;
        a++;
        ertekek[i]={a,b};
        if(!sp[a])sp[a]=new vector<array<int,2>>();
        sp[a]->push_back({c,i+1});
        if (!v[b])v[b]=new vector<array<int,2>>();
        v[b]->push_back({c,i+1});
    }
    dp1[0]=0;
    set<array<int,3>> s;
    for(int i = 1;i<=u;i++){
        if(sp[i]){
            for(auto[c,ind]:*sp[i]){
                int b=ertekek[ind-1][1];
                s.insert({dp1[i-1]+c,b,ind});
            }
        }
        if(s.empty()){
            cout<<-1;
            return 0;
        }
        auto it=s.begin();
        auto [cost,bb,index]=*it;
        dp1[i]=cost;
        dp2[i]=index;
        if(v[i]){
            for(auto[c,ind]:*v[i]){
                int a=ertekek[ind-1][0];
                s.erase({dp1[a-1]+c,i,ind});
            }
        }
        /*cout<<i<<':'<<endl;
        for(auto[cost,b,ind]:s){
            cout<<ind<<' ';
        }
        cout<<endl;
        cout<<dp[i][0]<<' ';*/
    }//cout<<endl;
    if(dp1[u]==INT_MAX||dp2[u]==-1){
        cout<<-1;
        return 0;
    }
    cout<<dp1[u]<<endl;
    vector<int> ans;
    int i = u;
    while(i!=0){
        ans.push_back(dp2[i]);
        i=ertekek[dp2[i]-1][0];
        i--;
    }cout<<ans.size()<<' ';
    sort(ans.begin(),ans.end());
    for(int i : ans)cout<<i<<' ';
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms500 KiB
2Accepted0/017ms2356 KiB
3Accepted1/11ms316 KiB
4Accepted3/31ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms316 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms500 KiB
9Accepted2/21ms316 KiB
10Accepted2/2192ms31884 KiB
11Accepted2/2200ms31884 KiB
12Accepted2/21ms316 KiB
13Accepted2/26ms868 KiB
14Accepted3/314ms2612 KiB
15Accepted3/317ms2796 KiB
16Accepted2/2200ms31884 KiB
17Accepted2/2192ms31928 KiB
18Accepted2/21ms508 KiB
19Accepted2/21ms316 KiB
20Accepted2/21ms324 KiB
21Accepted2/21ms316 KiB