제출 #1138457

#제출 시각아이디문제언어결과실행 시간메모리
1138457urosk친구 (IOI14_friend)C++20
58 / 100
17 ms4748 KiB
#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[0][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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...