This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define pii pair<int,int>
#define F first
#define S second
#define mp make_pair
#include "friend.h"
using namespace std;
const int N = 3e5+1 ;
int findSample(int n , int* v, int* p , int* protocol ){
vector<int> adj[n] ;
vector<vector<int>> mem(n,vector<int>(2,-1));
for(int i=1;i<n;i++) adj[p[i]].push_back(i) ;
function<int(int,int,int)> dfs = [&](int a , int s,int p){
if(mem[a][s]!=-1) return mem[a][s] ;
int sum=(s?v[a]:0);
for(int x: adj[a]){
if(x==p) continue ;
sum+=max(dfs(x,0,a),dfs(x,s^1,a)) ;
}
mem[a][s]=sum ;
return sum ;
};
return max(dfs(0,0,0),dfs(0,1,0)) ;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |