Submission #422285

#TimeUsernameProblemLanguageResultExecution timeMemory
422285APROHACKFriend (IOI14_friend)C++14
35 / 100
14 ms6728 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...