제출 #285712

#제출 시각아이디문제언어결과실행 시간메모리
285712KastandaFriend (IOI14_friend)C++11
58 / 100
34 ms2296 KiB
// M
#include<bits/stdc++.h>
#include "friend.h"
using namespace std;
const int N = 100005;
int n, dp[N][2];

int findSample(int _n, int confidence[], int host[], int protocol[])
{
        n = _n;
        for (int i = 0; i < n; i ++)
                dp[i][1] = confidence[i], dp[i][0] = 0;

        for (int i = n - 1; i; i --)
        {
                int p = host[i];
                if (protocol[i] == 0)
                {
                        dp[p][1] += dp[i][0];
                        dp[p][0] += max(dp[i][0], dp[i][1]);
                }
                else if (protocol[i] == 1)
                {
                        dp[p][1] += max(dp[i][0], dp[i][1]);
                        dp[p][1] = max(dp[p][1], dp[p][0] + dp[i][1]);
                        dp[p][0] += dp[i][0];
                }
                else
                {
                        dp[p][0] = max(dp[p][0], dp[i][0]);
                        dp[p][1] = max(dp[p][1], dp[i][1]);
                }
        }
        return max(dp[0][0], dp[0][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...