Submission #586347

#TimeUsernameProblemLanguageResultExecution timeMemory
586347LastRoninFriend (IOI14_friend)C++14
16 / 100
1 ms296 KiB
#include "friend.h" #include <bits/stdc++.h> #define ll long long using namespace std; const ll N = 1e3 + 10; bool can[N][N]; int findSample(int n,int confidence[],int host[],int protocol[]){ bool eq = 1; for(int j = 1; j < n - 1; j++) { if(protocol[j] != protocol[j + 1]) eq = 0; } if(eq) { if(protocol[1] == 1) { // empty ll sum = 0; for(int j = 0; j < n; j++) sum += confidence[j]; return sum; } else if(protocol[1] == 2) { // full ll mx = 0; for(int j = 0; j < n; j++) mx = max(mx, (ll)confidence[j]); return mx; } else if(protocol[1] == 0) { // tree return -1; } } else { for(int j = 1; j < n; j++) { if(protocol[j] == 0) { can[j][host[j]] = 1; can[host[j]][j] = 1; } else if(protocol[j] == 1) { for(int i = 0; i < n; i++) { if(can[host[j]][i]) can[i][j] = can[j][i] = 1; } } else { for(int i = 0; i < n; i++) { if(can[host[j]][i]) can[i][j] = can[j][i] = 1; } can[j][host[j]] = 1; can[host[j]][j] = 1; } } if(n > 10)return 0; ll mx = 0; for(int j = 0; j < (1<<n); j++) { bool incor = 0; ll sum = 0; for(int i = 0; i < n; i++) { if((1<<i)&j) sum = sum + confidence[i]; for(int k = 0; k < n; k++) { if(((1<<i)&j) && ((1<<k)&j) && (can[i][k] || can[k][i])) { incor = 1; } } } if(!incor) mx = max(mx, sum); } return mx; } return 0; } /* 6 13 3 6 20 10 15 0 0 0 1 1 2 2 1 0 0 6 13 3 6 20 10 15 0 0 0 1 1 2 2 1 0 0 */ /* #define __MAXSIZE__ 100002 #include "friend.h" using namespace std; // Confidence int confidence[__MAXSIZE__]; // Host int host[__MAXSIZE__]; // Protocol int protocol[__MAXSIZE__]; // Main int main(void) { int n,i; // Number of people assert(scanf("%d",&n)==1); // Confidence for(i=0;i<n;i++) assert(scanf("%d",&confidence[i])==1); // Host and Protocol for(i=1;i<n;i++) assert(scanf("%d %d",&host[i],&protocol[i])==2); // Answer printf("%d\n",findSample(n,confidence,host,protocol)); return 0; } /**/

Compilation message (stderr)

friend.cpp:116:1: warning: "/*" within comment [-Wcomment]
  116 | /**/
      |
#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...