# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
470461 | Namnamseo | Friend (IOI14_friend) | C++17 | 3 ms | 2764 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "friend.h"
#include <cstdio>
#include <vector>
using namespace std;
const int maxn = int(1e5) + 10;
vector<int> e[maxn];
int msk[maxn];
int *a;
int dfs(int x, bool pp) {
static int dp[maxn][2]; int &ret = dp[x][pp];
static bool vis[maxn][2];
if (vis[x][pp]) return ret; vis[x][pp] = true;
for (int use=0; use<2; ++use) {
if (use && pp) continue;
int tmp = (use ? a[x] : 0);
for (int y:e[x]) {
tmp += dfs(y, msk[y]&(2*pp+use));
}
if (ret < tmp) ret = tmp;
}
return ret;
}
int findSample(int n,int confidence[],int host[],int protocol[]){
a = confidence;
for (int i=1; i<n; ++i) e[host[i]].push_back(i);
for (int i=1; i<n; ++i) msk[i] = protocol[i]+1;
return dfs(0, 0);
}
Compilation message (stderr)
# | 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... |