3892 | 2023. 03. 03 18:36:33 | Erik_Gepard | Benzinkút üzemeltetés (55) | cpp17 | Elfogadva 55/55 | 3ms | 4288 KiB |
#include<bits/stdc++.h>
using namespace std;
void solve(){
int n, k;
cin>>n>>k;
vector<pair<int, int>> kut(n+1, {0, 0});
for(pair<int, int> &x : kut) cin>>x.first>>x.second;
vector<int> dp(n+1);
vector<int> parent(n+1);
for(int i=0; i<n; i++){
dp[i]=kut[i].second;
parent[i]=i;
for(int j=0; j<i; j++){
if(kut[i].first-kut[j].first>=k){
if(dp[i]<dp[j]+kut[i].second){
dp[i]=dp[j]+kut[i].second;
parent[i]=j;
}
}
}
}
int ans=0, ansh=0;
for(int i=0; i<n; i++){
if(dp[i]>ans){
ans=dp[i];
ansh=i;
}
}
stack<int> val;
int curr=ansh;
while(curr!=parent[curr]){
val.push(curr+1);
curr=parent[curr];
}
cout<<ans<<"\n"<<val.size()+1<<" "<<curr+1<<" ";
while(!val.empty()){
cout<<val.top()<<" ";
val.pop();
}
return;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
solve();
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 55/55 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1828 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2072 KiB | |||
3 | Elfogadva | 3/3 | 3ms | 2232 KiB | |||
4 | Elfogadva | 3/3 | 3ms | 2444 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2664 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2868 KiB | |||
7 | Elfogadva | 3/3 | 2ms | 2948 KiB | |||
8 | Elfogadva | 3/3 | 3ms | 3184 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3400 KiB | |||
10 | Elfogadva | 3/3 | 2ms | 3476 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3608 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3700 KiB | |||
13 | Elfogadva | 4/4 | 3ms | 3920 KiB | |||
14 | Elfogadva | 4/4 | 3ms | 3952 KiB | |||
15 | Elfogadva | 5/5 | 3ms | 4032 KiB | |||
16 | Elfogadva | 6/6 | 3ms | 4288 KiB | |||
17 | Elfogadva | 6/6 | 3ms | 4244 KiB |