Submission #1184317

#TimeUsernameProblemLanguageResultExecution timeMemory
1184317pensiveFriend (IOI14_friend)C++20
19 / 100
1097 ms131072 KiB
#include "friend.h" #include <iostream> #include <algorithm> #include <vector> #include <algorithm> using namespace std; #define ll long long #define REP(a,i,n) for (int i=a;i<n;i++) #define f first #define s second void iayf(int n, int i, int host, vector<vector<int>> &adjList) { adjList[host][i]=1; adjList[i][host]=1; } void mfayf(int n, int i, int host, vector<vector<int>> &adjList) { REP(0,j,n) { if (adjList[host][j]==1) { adjList[j][i]=1; adjList[i][j]=1; } } } void wayf(int n, int i, int host, vector<vector<int>> &adjList) { mfayf(n,i,host,adjList); iayf(n, i, host, adjList); } int maxSample(int n, int i, vector<vector<int>> &adjList, vector<int> &includes, int confidence[]) { if (i==n) { return 0; } int cleared=0; REP(0,j,n) { if (adjList[i][j]==1) { cleared += includes[j]; } } int ans= maxSample(n,i+1,adjList,includes,confidence); if (cleared==0) { includes[i]=1; ans = max(ans, confidence[i]+maxSample(n,i+1,adjList,includes,confidence)); includes[i]=0; } return ans; } int findSample(int n, int confidence[], int host[], int protocol[]) { vector<vector<int> > adjList(n, vector<int>(n, 0)); REP(1,i,n) { if (protocol[i]==0) iayf(n,i,host[i],adjList); else if (protocol[i]==1) mfayf(n,i,host[i],adjList); else if (protocol[i]==2) wayf(n,i,host[i],adjList); } vector<int> includes(n, 0); return maxSample(n,0,adjList,includes,confidence); }
#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...