Submission #744597

#TimeUsernameProblemLanguageResultExecution timeMemory
744597vjudge1Friend (IOI14_friend)C++11
100 / 100
25 ms3376 KiB
#include <bits/stdc++.h>
#include "friend.h"

using namespace std;
const int MAX=1e5+10;
const int INF=(1<<30);
int X[MAX], Y[MAX];

int findSample(int n, int confidence[], int host[], int protocol[])
{
    for (int i = 0; i < n; i++)
    {
        X[i]=confidence[i];
    }
    for (int i=n-1; i>=1; i--)
    {
        if (protocol[i]==0)
        {
            X[host[i]]+=Y[i];
            Y[host[i]]=max(Y[host[i]]+X[i],Y[host[i]]+Y[i]);
        }
        if (protocol[i]==1)
        {
            X[host[i]]=max({X[host[i]]+X[i],X[host[i]]+Y[i],Y[host[i]]+X[i]});
            Y[host[i]]+=Y[i];
        }
        if (protocol[i]==2)
        {
            X[host[i]]=max(X[host[i]]+Y[i],Y[host[i]]+X[i]);
            Y[host[i]]+=Y[i];
        }
    }
    return max(X[0],Y[0]);
}
#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...