# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1165094 | SmuggingSpun | 친구 (IOI14_friend) | C++20 | 1095 ms | 3908 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 <= 20){
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] == 0 || protocol[i] == 2){
add_edge(host[i], i);
}
if(protocol[i] == 1 || protocol[i] == 2){
for(int& j : g[host[i]]){
add_edge(i, j);
}
}
}
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;
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |