#include "friend.h"
#include "bits/stdc++.h"
#define ceri(a,l,r) {for(ll i_ = l;i_<=r;i_++) cerr<<a[i_]<< " ";cerr<<endl;}
using namespace std;
using ll = long long;
// Find out best sample
const ll maxn = 100005;
ll dp[2][maxn];
ll n;
ll a[maxn];
ll p[maxn];
int findSample(int N,int confidence[],int host[],int protocol[]){
n = N;
for(ll i = 1;i<=n;i++) a[i] = confidence[i-1],p[i] = host[i-1]+1;
for(ll i = 1;i<=n;i++) dp[1][i] = a[i];
for(ll i = n;i>=2;i--) {
ll x = p[i];
if(protocol[i-1]==0) {
dp[0][x]+=dp[1][i];
dp[1][x]+=dp[0][i];
}else if(protocol[i-1]==1) {
dp[0][x]+=dp[0][i];
dp[1][x]+=dp[1][i];
}else {
dp[0][x]+=dp[1][i];
dp[1][x] = max(dp[1][x]+dp[0][i],dp[0][x]+dp[1][i]);
}
dp[1][x] = max(dp[1][x],dp[0][x]);
}
return max(dp[0][1],dp[1][1]);
}
# | 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... |