Submission #1370572

#TimeUsernameProblemLanguageResultExecution timeMemory
1370572cnam9친구 (IOI14_friend)C++20
27 / 100
1 ms344 KiB
#include <algorithm>
#include "friend.h"

constexpr int N = 1e5 + 5;
int s[N];
int dp[N][2];

int findSample(int n, int confidence[], int host[], int protocol[]) {
    for (int v = n - 1;; v--) {
        dp[v][1] += confidence[v];
        dp[v][1] = std::max(dp[v][1], dp[v][0]);
        if (v == 0) break;
        int u = host[v];

        dp[u][0] = std::max(dp[u][0] + dp[v][0], s[u] + dp[v][1]);
        s[u] += dp[v][protocol[v] == 0];
        dp[u][1] += dp[v][protocol[v] == 1];
    }
    return dp[0][1];
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...