# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
420957 | marcipan5000 | 친구 (IOI14_friend) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "friend.h"
bool q1=1,q2=1,q3=1;
int n1;
int ans=0;
int uu;
#include <vector>
#include <iostream>
int conff[15];
vector<int> t[15];
bool z[15];
int w=0;
void rek(int p) {
if (p==n1) {
for (int i=0;i<n1;i++) {
if (z[i]==1) {
for (int j=0;j<t[i].size();j++) {
if (z[t[i][j]]==1) {
return;
}
}
}
}
ans=max(ans,w);
return;
}
z[p]=0;
rek(p+1);
z[p]=1; w+=conff[p];
rek(p+1);
z[p]=0; w-=conff[p];
return;
}
int findSample(int n,int confidence[],int host[],int protocol[]) {
n1=n;
for (int i=1;i<n;i++) {
if (protocol[i]!=0) {
q1=0;
}
if (protocol[i]!=1) {
q2=0;
}
if (protocol[i]!=2) {
q3=0;
}
}
if (q3==1) {
int ma=0;
for (int i=0;i<n;i++) {
ma=max(ma,confidence[i]);
}
return(ma);
}
if (n<=10) {
for (int i=0;i<n;i++) {
conff[i]=confidence[i];
}
for (int i=1;i<n;i++) {
if (protocol[i]==0) {
t[i].push_back(host[i]);
t[host[i]].push_back(i);
}
if (protocol[i]==1) {
uu=t[host[i]].size();
for (int j=0;j<uu;j++) {
t[i].push_back(t[host[i]][j]);
t[t[host[i]][j]].push_back(i);
}
}
if (protocol[i]==2) {
uu=t[host[i]].size();
for (int j=0;j<uu;j++) {
t[i].push_back(t[host[i]][j]);
t[t[host[i]][j]].push_back(i);
}
t[i].push_back(host[i]);
t[host[i]].push_back(i);
}
/*
for (int i2=0;i2<=i;i2++) {
for (int j=0;j<t[i2].size();j++) {
cout << t[i2][j] << " ";
}
cout << endl;
}
cout << endl;
*/
}
rek(0);
return(ans);
}
}