제출 #1165103

#제출 시각아이디문제언어결과실행 시간메모리
1165103SmuggingSpun친구 (IOI14_friend)C++20
46 / 100
15 ms1416 KiB
#include<bits/stdc++.h> #include "friend.h" using namespace std; template<class T>void maximize(T& a, T b){ if(a < b){ a = b; } } int findSample(int n, int confidence[], int host[], int protocol[]){ if(n <= 10){ vector<vector<int>>g(n); auto add_edge = [&] (int u, int v){ g[u].emplace_back(v); g[v].emplace_back(u); }; for(int i = 1; i < n; i++){ if(protocol[i] == 1 || protocol[i] == 2){ for(int& j : g[host[i]]){ add_edge(i, j); } } if(protocol[i] == 0 || protocol[i] == 2){ add_edge(host[i], i); } } int ans = 0; for(int mask = 1; mask < (1 << n); mask++){ bool flag = true; for(int i = 0; i < n && flag; i++){ if(1 << i & mask){ for(int& j : g[i]){ if(1 << j & mask){ flag = false; break; } } } } if(flag){ int sum = 0; for(int i = 0; i < n; i++){ if(1 << i & mask){ sum += confidence[i]; } } maximize(ans, sum); } } return ans; } if(*min_element(protocol + 1, protocol + n) == 1 && *max_element(protocol + 1, protocol + n) == 1){ return accumulate(confidence, confidence + n, 0); } if(*max_element(protocol + 1, protocol + n) == 0){ vector<vector<int>>g(n); for(int i = 1; i < n; i++){ g[host[i]].emplace_back(i); } vector<vector<int>>f(n, vector<int>(2, 0)); function<void(int)>dfs; dfs = [&] (int s){ for(int& d : g[s]){ dfs(d); f[s][0] += max(f[d][0], f[d][1]); f[s][1] += f[d][0]; } f[s][1] += confidence[s]; }; dfs(0); return max(f[0][0], f[0][1]); } if(*min_element(protocol + 1, protocol + n) == 2){ return *max_element(confidence, confidence + n); } }

컴파일 시 표준 에러 (stderr) 메시지

friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:75:1: warning: control reaches end of non-void function [-Wreturn-type]
   75 | }
      | ^
#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...