This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "friend.h"
#define mp make_pair
#define mt make_tuple
#define ff first
#define ss second
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
const ll INFL = (1LL<<62)-1;
const int INF = (1<<30)-1;
const int MAXN = 0;
vector<int> cur;
int N;
int bt(int id, int confidence[], vector<vector<bool>> &isFriend){
if(id == N){
int resp = 0;
for(int i : cur)
resp+=confidence[i];
return resp;
}
int ret = bt(id+1,confidence,isFriend);
for(int i : cur){
if(isFriend[i][id])
return ret;
}
cur.push_back(id);
ret = max(ret, bt(id+1,confidence,isFriend));
cur.pop_back();
return ret;
}
int findSample(int n, int confidence[], int host[], int protocol[]){
N =n;
vector<vector<bool>> isFriend(n, vector<bool> (n,0));
for(int i = 1; i < n; i++){
for(int j = 0; j < n; j++){
isFriend[j][i] = isFriend[host[i]][j] && protocol[i];
isFriend[i][j] = isFriend[j][i];
}
if(protocol[i] == 0 || protocol[i] == 2)
isFriend[host[i]][i] = 1, isFriend[i][host[i]] = 1;
}
return bt(0,confidence,isFriend);
}
# | 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... |