Submission #991879

#TimeUsernameProblemLanguageResultExecution timeMemory
991879huutuanFriend (IOI14_friend)C++14
11 / 100
1067 ms4088 KiB
#include "friend.h"

#include <bits/stdc++.h>

using namespace std;

#define int long long

bool adj[30][30];

// Find out best sample
int32_t findSample(int32_t n,int32_t confidence[],int32_t host[],int32_t protocol[]){
   for (int i=1; i<n; ++i){
      if (protocol[i]==0){
         adj[i][host[i]]=1;
         adj[host[i]][i]=1;
      }else if (protocol[i]==1){
         for (int j=0; j<i; ++j) if (adj[host[i]][j]){
            adj[i][j]=1;
            adj[j][i]=1;
         }
      }else{
         for (int j=0; j<i; ++j) if (adj[host[i]][j] || j==host[i]){
            adj[i][j]=1;
            adj[j][i]=1;
         }
      }
   }
   int ans=0;
   for (int i=0; i<(1<<n); ++i){
      int cur=0;
      bool check=1;
      for (int j=0; j<n; ++j) if (i>>j&1){
         cur+=confidence[j];
         for (int k=j+1; k<n; ++k) if (i>>k&1){
            check&=!adj[j][k];
         }
      }
      if (check) ans=max(ans, cur);
   }
   return ans;
}
#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...