#include "friend.h"
#include <iostream>
#include <algorithm>
#include <vector>
#include <algorithm>
using namespace std;
#define ll long long
#define REP(a,i,n) for (int i=a;i<n;i++)
#define f first
#define s second
void memoing(int h, int i, int act, vector<pair<int,int> > &memo) {
if (act == 0) {
memo[h].s = memo[h].s + memo[i].f;
memo[h].f = max(memo[h].f + memo[i].s, memo[h].f + memo[i].f);
}
else if (act == 1) {
memo[h].f = memo[h].f + memo[i].f;
memo[h].s = max({memo[h].s + memo[i].s, memo[h].s + memo[i].f, memo[h].f + memo[i].s});
}
else if (act == 2) {
memo[h].f = memo[h].f + memo[i].f;
memo[h].s = max(memo[h].s + memo[i].f, memo[h].f + memo[i].s);
}
}
int findSample(int N, int confidence[], int host[], int protocol[]) {
vector<pair<int,int> > memo(N);
REP(0,i,N) {
memo[i].f = 0; memo[i].s=confidence[i];
}
for(int i=N-1;i>0;i--) {
memoing(host[i], i, protocol[i], memo);
}
return max(memo[0].f, memo[0].s);
}
# | 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... |