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 <bits/stdc++.h>
using namespace std;
#define PB push_back
#define F first
#define S second
vector<int>ady[100001];
//bool recorrido[100001];
//bool prendido[100001];
int mem[1001][2];
vector<int>conf;
// Find out best sample
long long dparbol(int nod, bool cogialanterior){
if(mem[nod][cogialanterior]!=-1)return mem[nod][cogialanterior];
long long rta=0, rta2=conf[nod];
if(cogialanterior){
for(auto i: ady[nod]){
rta+=dparbol(i, false);
}
return mem[nod][cogialanterior]=rta;
}else{
for(auto i: ady[nod]){
rta+=dparbol(i, false);
}
for(auto i: ady[nod]){
rta2+=dparbol(i, true);
}
return mem[nod][cogialanterior]=max(rta, rta2);
}
}
int findSample(int n,int confidence[],int host[],int protocol[]){
int ans=10;
//memset(prendido, false, sizeof prendido);
//memset(recorrido, false, sizeof recorrido);
memset(mem, -1, sizeof mem);
for(int i = 0 ; i < n ; i++){
conf.PB(confidence[i]);
}
int cass=0;
for(int i = 1 ; i < n ; i++){
if(protocol[i]==0){//IAmYourFriend
ady[host[i]].PB(i);
}else if(protocol[i]==1){//MyFriendsAreYourFriends
for(auto j:ady[host[i]]){
ady[j].PB(i);
ady[i].PB(j);
}
cass=1;
}else{
for(auto j:ady[host[i]]){
ady[j].PB(i);
ady[i].PB(j);
}
ady[host[i]].PB(i);
ady[i].PB(host[i]);
cass=2;
}
}
/*
for(int i = 0 ; i < n ; i++){
for(int j = 0 ; j < ady[i].size() ; j++){
cout<<ady[i][j]<<" ";
}
cout<<endl;
}*/
long long sum=0;
int mx=0;
for(int i = 0 ; i < n ; i++){
sum+=confidence[i];
mx=max(confidence[i], mx);
}
if(cass==1){
return sum;
}else if(cass==2){
return mx;
}else{//arbolardo
return dparbol(0, false);
}
//return dp(1, false);
}
Compilation message (stderr)
friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:32:6: warning: unused variable 'ans' [-Wunused-variable]
32 | int ans=10;
| ^~~| # | 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... |