5750 | 2023. 09. 16 12:26:20 | Ablablabla | Benzinkút üzemeltetés (55) | cpp17 | Elfogadva 55/55 | 29ms | 35140 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pii;
ll n, k;
vector<ll> tavok;
vector<ll> haszon;
vector<vector<pii>> dp;
ll megold(ll akt, ll elozo){
if(akt == n + 1){
return 0;
} else if(dp[akt][elozo] != (pii){-1, -1}){
return dp[akt][elozo].first;
}
ll a = 0;
ll b = megold(akt + 1, elozo);
if(tavok[akt] - tavok[elozo] >= k){
a = megold(akt + 1, akt) + haszon[akt];
}
if(a > b){
dp[akt][elozo] = {a, 0};
} else{
dp[akt][elozo] = {b, 1};
}
return dp[akt][elozo].first;
}
int main()
{
cin >> n >> k;
tavok.assign(n + 1, 0);
haszon.assign(n + 1, 0);
tavok[0] = 0 - k - 1;
haszon[0] = 0 - k - 1;
for(ll i = 1; i <= n; i++){
cin >> tavok[i] >> haszon[i];
}
dp.assign(n + 1, vector<pii>(n + 1, {-1, -1}));
ll maxi = megold(1, 0);
cout << maxi << "\n";
ll akt = 1;
ll elozo = 0;
vector<ll> kutak;
while(akt <= n){
//cout << akt << " " << elozo << "\n";
if(dp[akt][elozo].second == 0){
kutak.push_back(akt);
elozo = akt;
akt++;
} else{
akt++;
}
}
cout << kutak.size() << " ";
for(ll x : kutak){
cout << x << " ";
}
cout << "\n";
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 55/55 | ||||||
1 | Elfogadva | 0/0 | 3ms | 2084 KiB | |||
2 | Elfogadva | 0/0 | 29ms | 33840 KiB | |||
3 | Elfogadva | 3/3 | 2ms | 2448 KiB | |||
4 | Elfogadva | 3/3 | 2ms | 2656 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2872 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 3080 KiB | |||
7 | Elfogadva | 3/3 | 2ms | 3168 KiB | |||
8 | Elfogadva | 3/3 | 2ms | 3200 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3552 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3716 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3964 KiB | |||
12 | Elfogadva | 3/3 | 8ms | 11192 KiB | |||
13 | Elfogadva | 4/4 | 10ms | 14788 KiB | |||
14 | Elfogadva | 4/4 | 14ms | 18944 KiB | |||
15 | Elfogadva | 5/5 | 18ms | 23884 KiB | |||
16 | Elfogadva | 6/6 | 24ms | 28380 KiB | |||
17 | Elfogadva | 6/6 | 29ms | 35140 KiB |