909 | 2022. 01. 27 14:18:39 | Babják Péter | Szállítás | cpp11 | Elfogadva 40/40 | 8ms | 4764 KiB |
#include<bits/stdc++.h>
#define MAXN 20001
#define IO ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
using namespace std;
int n,k,sum,a;
int mx[MAXN],lch[MAXN];
bool stp[MAXN];
vector<int>adj[MAXN],ans2;
vector<pair<int,int> >ans;
void dfs(int v)
{
if(adj[v].empty())
{
stp[v]=1;
mx[v]=1;
lch[v]=v;
return;
}
int mxx=-1,mxu;
for(int u:adj[v])
{
dfs(u);
if(mxx<mx[u])
{
mxx=mx[u];
mxu=u;
}
}
stp[mxu]=0;
stp[v]=1;
mx[v]=mxx+1;
lch[v]=lch[mxu];
}
int main()
{
IO;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>a;
adj[a].push_back(i);
}
dfs(1);
for(int i=1;i<=n;i++) if(stp[i])ans.push_back({mx[i],lch[i]});
sort(ans.rbegin(),ans.rend());
for(int i=0;i<k && i<ans.size();i++)
{
sum+=ans[i].first;
ans2.push_back(ans[i].second);
}
cout<<sum-1<<'\n';
for(int u:ans2)cout<<u<<' ';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 2812 KiB | |||
2 | Elfogadva | 0/0 | 4ms | 3180 KiB | |||
3 | Elfogadva | 2/2 | 2ms | 2808 KiB | |||
4 | Elfogadva | 2/2 | 2ms | 2948 KiB | |||
5 | Elfogadva | 2/2 | 2ms | 2960 KiB | |||
6 | Elfogadva | 2/2 | 2ms | 2968 KiB | |||
7 | Elfogadva | 2/2 | 2ms | 2980 KiB | |||
8 | Elfogadva | 2/2 | 2ms | 2984 KiB | |||
9 | Elfogadva | 2/2 | 2ms | 2992 KiB | |||
10 | Elfogadva | 2/2 | 2ms | 2992 KiB | |||
11 | Elfogadva | 2/2 | 3ms | 3208 KiB | |||
12 | Elfogadva | 2/2 | 3ms | 3248 KiB | |||
13 | Elfogadva | 2/2 | 3ms | 3320 KiB | |||
14 | Elfogadva | 2/2 | 3ms | 3372 KiB | |||
15 | Elfogadva | 2/2 | 4ms | 3448 KiB | |||
16 | Elfogadva | 2/2 | 3ms | 3616 KiB | |||
17 | Elfogadva | 3/3 | 4ms | 3712 KiB | |||
18 | Elfogadva | 3/3 | 4ms | 3924 KiB | |||
19 | Elfogadva | 3/3 | 8ms | 4664 KiB | |||
20 | Elfogadva | 3/3 | 7ms | 4764 KiB |