Submission #991881

#TimeUsernameProblemLanguageResultExecution timeMemory
991881huutuan친구 (IOI14_friend)C++14
19 / 100
15 ms1372 KiB
#include "friend.h" #include <bits/stdc++.h> using namespace std; namespace sub1{ bool adj[30][30]; bool check(int n,int confidence[],int host[],int protocol[]){ return n<=20; } int solve(int n,int confidence[],int host[],int 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; } } namespace sub2{ bool check(int n,int confidence[],int host[],int protocol[]){ return *min_element(protocol+1, protocol+n)==1 && *max_element(protocol+1, protocol+n)==1; } int solve(int n,int confidence[],int host[],int protocol[]){ return accumulate(confidence, confidence+n, 0); } } // Find out best sample int findSample(int n,int confidence[],int host[],int protocol[]){ if (sub2::check(n, confidence, host, protocol)) return sub2::solve(n, confidence, host, protocol); if (sub1::check(n, confidence, host, protocol)) return sub1::solve(n, confidence, host, protocol); return -1; }
#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...