Submission #903157

#TimeUsernameProblemLanguageResultExecution timeMemory
903157Muhammad_AneeqFriend (IOI14_friend)C++17
19 / 100
1087 ms42284 KiB
#include <vector> #include <iostream> #include <set> using namespace std; int const N=1000; set<int>nei[N]={}; int vis[N]={}; int ans=0; int nn; int val[N]={}; bool w=0; void dfs(int i,int val1) { for (int j=0;j<nn;j++) { if (i==j) continue; if (vis[j]&&nei[i].find(j)!=nei[i].end()) return; } for (int j=0;j<nn;j++) { if (i==j) continue; if (nei[i].find(j)==nei[i].end()&&!vis[j]) { vis[j]=1; dfs(j,val1+val[j]); if (w==0) vis[j]=0; } } ans=max(ans,val1); } int findSample(int n,int confidence[],int host[],int protocol[]) { nn=n; for (int i=0;i<n;i++) val[i]=confidence[i]; set<int>s; for (int i=1;i<n;i++) { s.insert(protocol[i]); if (protocol[i]==0) { nei[i].insert(host[i]); nei[host[i]].insert(i); } else if (protocol[i]==1) { for (int j=0;j<n;j++) { if (i==j) continue; if (nei[host[i]].find(j)!=nei[host[i]].end()) { nei[i].insert(j); nei[j].insert(i); } } } else { nei[i].insert(host[i]); nei[host[i]].insert(i); for (int j=0;j<n;j++) { if (i==j) continue; if (nei[host[i]].find(j)!=nei[host[i]].end()) { nei[i].insert(j); nei[j].insert(i); } } } } if (s.size()==1&&*begin(s)==1) { int ans=0; for (int i=0;i<n;i++) ans+=val[i]; return ans; } vis[0]=1; dfs(0,val[0]); vis[0]=0; for (auto j:nei[0]) { vis[j]=1; dfs(j,val[j]); vis[j]=0; } return ans; 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...