Submission #1136512

#TimeUsernameProblemLanguageResultExecution timeMemory
1136512Ak_16Friend (IOI14_friend)C++20
0 / 100
14 ms1604 KiB
#include <iostream> #include <vector> #include <queue> using namespace std; int findSample(int n, int con[], int hos[], int pro[]){ int po[15]; po[0] = 1; int tru=1; int sum=0; int ans = 0; for(int i=1; i<=10; i++){po[i] = 2*po[i-1];} vector<int> adj[20]; int cnt[20]; for(int i=1; i<n; i++){ if(pro[i]==0||pro[i]==2){adj[i].push_back(hos[i]); adj[hos[i]].push_back(i); } if(pro[i]>0){ for(auto x: adj[hos[i]]){ adj[i].push_back(x); adj[x].push_back(i); } } } for(int i=1; i<po[n]; i++){ int k = i; tru=1; sum=0; for(int j=0; j<n; j++){cnt[j]=0;} for(int j=n-1; j>=0; j--){ if(k>=po[j]){cnt[j] = 1; k -= po[j];} } for(int j=0; j<n; j++){ if(cnt[j]==1){ sum += con[j]; for(auto x: adj[j]){ if(cnt[x]==1){tru=0; } } } } if(tru==1){ans = max(ans, sum);} } 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...