254112026-02-19 21:23:44CzDaniMúzeumi őrökcpp17Accepted 40/40150ms21692 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main() {
    int n, e, u;
    cin >> n >> e >> u;
    vector<int> dp(u+1, 1e16), ut(u+1);
    vector<pair<int, int>> v(n+1);
    //map<int, vector<pair<int, int>>> vp;
    vector<pair<int, pair<int, int>>> vp;
    for (int i = 1; i <= n; i++) {
        int a, b, c;
        cin >> a >> b >> c;
        if (b<e||a>u)continue;
        a=max(a,e);
        b=min(b,u);
        //vp[a].push_back({i, c});
        vp.push_back({a, {i, c}});
        v[i] = {a, b};
    }
    sort(vp.begin(), vp.end());
    int cnt = 0;
    dp[e-1]=0;
    priority_queue<pair<int, int>> q;
    for (int i = e; i <= u; i++) {
        // for (auto [a, b] : vp[i]) {
        //     q.push({-(dp[i-1]+b), a});
        // }
        while (cnt<vp.size()&&vp[cnt].first==i) {
            q.push({-(dp[i-1]+vp[cnt].second.second), vp[cnt].second.first});
            cnt++;
        }
        while (!q.empty()&&v[q.top().second].second<i)q.pop();
        if (!q.empty()) {
            dp[i]=-q.top().first;
            ut[i]=q.top().second;
        }
    }
    if (dp[u]>=1e15) {
        cout << -1;
        return 0;
    }
    vector<int> ansv;
    int x = ut[u];
    while (x!=0) {
        ansv.push_back(x);
        x=ut[v[x].first-1];
    }
    sort(ansv.begin(), ansv.end());
    cout << dp[u] << '\n';
    cout << ansv.size() << ' ';
    for (int y : ansv) cout << y << ' ';
}
SubtaskSumTestVerdictTimeMemory
base40/40
1Accepted0/01ms316 KiB
2Accepted0/014ms1524 KiB
3Accepted1/11ms316 KiB
4Accepted3/31ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms384 KiB
7Accepted2/21ms500 KiB
8Accepted2/22ms316 KiB
9Accepted2/22ms508 KiB
10Accepted2/2143ms21688 KiB
11Accepted2/2150ms21600 KiB
12Accepted2/21ms344 KiB
13Accepted2/24ms564 KiB
14Accepted3/312ms1644 KiB
15Accepted3/314ms1856 KiB
16Accepted2/2150ms21668 KiB
17Accepted2/2143ms21692 KiB
18Accepted2/21ms316 KiB
19Accepted2/21ms316 KiB
20Accepted2/21ms316 KiB
21Accepted2/21ms316 KiB