3646 | 2023. 03. 01 16:58:06 | nkdorka1212 | Benzinkút üzemeltetés (55) | cpp17 | Elfogadva 55/55 | 4ms | 3872 KiB |
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,k;
cin>>n>>k;
vector<pair<int,int>>kutak(n+1,{0,0}); //tav , haszon
vector<int>dp(n+1,0);
vector<int>szulo(n+1,0);
for(int i=1;i<=n;i++)
{
cin>>kutak[i].first>>kutak[i].second;
}
dp[1]=kutak[1].second;
for(int i=2;i<=n;i++)
{
dp[i]=kutak[i].second;
for(int j=i-1;j>=1;j--)
{
if(kutak[i].first-kutak[j].first>=k)
{
if(dp[j]+kutak[i].second > dp[i])
{
dp[i]=dp[j]+kutak[i].second;
szulo[i]=j;
}
}
}
}
int utso=1;
for(int i=2;i<=n;i++)
{
if(dp[i]>dp[utso])
{
utso=i;
}
}
cout<<dp[utso]<<"\n";
stack<int>mo;
mo.push(utso);
while(szulo[utso]!=0)
{
mo.push(szulo[utso]);
utso=szulo[utso];
}
cout<<mo.size()<<" ";
while(!mo.empty())
{
cout<<mo.top()<<" ";
mo.pop();
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 55/55 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1808 KiB | |||
2 | Elfogadva | 0/0 | 4ms | 2016 KiB | |||
3 | Elfogadva | 3/3 | 3ms | 2240 KiB | |||
4 | Elfogadva | 3/3 | 3ms | 2428 KiB | |||
5 | Elfogadva | 3/3 | 2ms | 2508 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2760 KiB | |||
7 | Elfogadva | 3/3 | 3ms | 2992 KiB | |||
8 | Elfogadva | 3/3 | 3ms | 3044 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3184 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3300 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3420 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3520 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3752 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 3872 KiB | |||
15 | Elfogadva | 5/5 | 4ms | 3716 KiB | |||
16 | Elfogadva | 6/6 | 4ms | 3684 KiB | |||
17 | Elfogadva | 6/6 | 4ms | 3684 KiB |