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];
vector<int>conf;
// Find out best sample
long long dp(int node, bool cant){
//cout<<node<<endl;
if(!cant){
for(auto i:ady[node]){
if(prendido[i]){
cant=true;
break;
}
}
}
recorrido[node]=true;
long long ret=0, ret2=conf[node];
if(cant){
for(auto i:ady[node]){
if(!recorrido[i]){
ret=max(ret, dp(i, false));
}
}
recorrido[node]=false;
//cout<<"c"<<node<<" "<<ret<<endl;
return ret;
}else{
prendido[node]=true;
for(auto i:ady[node]){
if(!recorrido[i]){
ret2=max(dp(i, true), ret2);
}
}
prendido[node]=false;
for(auto i:ady[node]){
if(!recorrido[i]){
ret=max(dp(i, false), ret);
}
}
recorrido[node]=false;
//cout<<"r"<<node<<" "<<max(ret, ret2)<<endl;
return max(ret, ret2);
}
}
int findSample(int n,int confidence[],int host[],int protocol[]){
int ans=10;
memset(prendido, false, sizeof prendido);
memset(recorrido, false, sizeof recorrido);
for(int i = 0 ; i < n ; i++){
conf.PB(confidence[i]);
}
for(int i = 1 ; i < n ; i++){
if(protocol[i]==0){//IAmYourFriend
ady[host[i]].PB(i);
ady[i].PB(host[i]);
}else if(protocol[i]==1){//MyFriendsAreYourFriends
for(auto j:ady[host[i]]){
ady[j].PB(i);
ady[i].PB(j);
}
}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]);
}
}
/*
for(int i = 0 ; i < n ; i++){
for(int j = 0 ; j < ady[i].size() ; j++){
cout<<ady[i][j]<<" ";
}
cout<<endl;
}*/
return dp(n-1, false);
}
Compilation message (stderr)
friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:52:6: warning: unused variable 'ans' [-Wunused-variable]
52 | 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... |