4687 | 2023. 03. 31 08:55:39 | Albertstein99 | Tevefarm | cpp17 | Elfogadva 50/50 | 103ms | 14700 KiB |
#include <bits/stdc++.h>
using namespace std;
vector <vector <long long> > g;
vector <long long> W;
vector <bool> Q;
vector <long long> ans;
long long dfs(long long node){
long long maxi = 0;
for(auto x : g[node])
maxi += dfs(x);
if(maxi > W[node])
return maxi;
Q[node] = 1;
return W[node];
}
void dfs2(long long node){
if(Q[node]){
ans.push_back(node);
return;
}
for(auto x : g[node])
dfs2(x);
}
int main(){
long long N;
cin >> N;
W.resize(N + 1);
g.resize(N + 1);
Q.resize(N + 1);
for(long long i = 1; i <= N; i++)
cin >> W[i];
for(long long i = 2; i <= N; i++){
long long x;
cin >> x;
g[x].push_back(i);
}
cout << dfs(1) << '\n';
dfs2(1);
cout << ans.size() << '\n';
for(auto x : ans){
cout << x << ' ';
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1872 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 2312 KiB | |||
3 | Elfogadva | 4/4 | 3ms | 2600 KiB | |||
4 | Elfogadva | 4/4 | 2ms | 2564 KiB | |||
5 | Elfogadva | 4/4 | 3ms | 2668 KiB | |||
6 | Elfogadva | 4/4 | 3ms | 3036 KiB | |||
7 | Elfogadva | 4/4 | 43ms | 8740 KiB | |||
8 | Elfogadva | 6/6 | 52ms | 9980 KiB | |||
9 | Elfogadva | 6/6 | 61ms | 11460 KiB | |||
10 | Elfogadva | 6/6 | 68ms | 12740 KiB | |||
11 | Elfogadva | 6/6 | 92ms | 13704 KiB | |||
12 | Elfogadva | 6/6 | 103ms | 14700 KiB |