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 |