6392 2023. 11. 26 19:24:34 horvathabel Múzeumi őrök cpp17 Hibás válasz 22/40 133ms 63776 KiB
#include <bits/stdc++.h>
using ll=long long;
using namespace std;
struct mor{
    ll ar;
    ll k;
    ll v;
    ll i;
};
struct p{
    ll penz;
    ll v;
    vector<ll>mego;
};
struct compar{
    bool operator()(mor a, mor b){
        return (a.ar>b.ar);
    }
};
int main()
{
    ll n,k,v;
    cin>>n>>k>>v;
    vector<vector<mor>> ve;

    ve.resize(v+1,vector<mor>());
    priority_queue<mor,vector<mor>, compar> q;
    for (ll i=0; i<n;i++){
        ll a,b,c;
        cin>>a>>b>>c;
        ve[max(a,k)].push_back({c,a,b,i});
    }
    vector<p> dp;
    dp.resize(v+1);
    dp[k-1]={0,0,{}};
    for (ll i=k;i<=v;i++){
        for (mor x:ve[i]) q.push(x);
        if (dp[i-1].v>=i) dp[i]=dp[i-1];
        else{
            while (!q.empty() && q.top().v<i){
                q.pop();

            }
            if (q.empty()){
                cout<<-1;
                return 0;
            }
            mor most=q.top();
            dp[i]=dp[most.k-1];
            dp[i].penz+=most.ar;
            dp[i].v=most.v;
            dp[i].mego.push_back(most.i);
        }
    }
    cout<<dp[v].penz<<"\n"<<dp[v].mego.size()<<" ";
    for (ll z:dp[v].mego) cout<<z+1<<" ";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 22/40
1 Elfogadva 0/0 3ms 1812 KiB
2 Hibás válasz 0/0 37ms 63664 KiB
3 Elfogadva 1/1 3ms 2368 KiB
4 Elfogadva 3/3 3ms 2592 KiB
5 Elfogadva 2/2 3ms 2676 KiB
6 Elfogadva 2/2 3ms 2968 KiB
7 Elfogadva 2/2 3ms 3060 KiB
8 Elfogadva 2/2 3ms 3156 KiB
9 Elfogadva 2/2 3ms 3368 KiB
10 Futási hiba 0/2 133ms 63776 KiB
11 Futási hiba 0/2 130ms 63672 KiB
12 Hibás válasz 0/2 3ms 3752 KiB
13 Hibás válasz 0/2 8ms 6784 KiB
14 Futási hiba 0/3 37ms 63472 KiB
15 Futási hiba 0/3 39ms 63412 KiB
16 Futási hiba 0/2 130ms 63404 KiB
17 Futási hiba 0/2 130ms 63140 KiB
18 Elfogadva 2/2 3ms 3800 KiB
19 Elfogadva 2/2 3ms 3800 KiB
20 Elfogadva 2/2 3ms 3804 KiB
21 Elfogadva 2/2 3ms 3812 KiB