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 ALL(x) x.begin(),x.end()
#define LLA(x) x.rbegin(),x.rend()
#define pb push_back
using namespace std;
using PII = pair <int, int>;
using ll = long long;
// Find out best sample
/*
0 for IAmYourFriend,
1 for MyFriendsAreYourFriends,
2 for WeAreYourFriends.
*/
const int N = 1e3 + 5;
set <int> friends[N];
void IAmYourFriend(int x, int y) {
// cout << "IAmYourFriend: " << x << ' ' << y <<'\n';
friends[x].insert(y);
}
void MyFriendsAreYourFriends(int x, int y) {
// cout << "MyFriendsAreYourFriends: " << x << ' ' << y <<'\n';
for (auto el : friends[y]) friends[x].insert(el);
}
void WeAreYourFriends(int x, int y) {
MyFriendsAreYourFriends(x, y);
IAmYourFriend(x, y);
}
bool isFriend[N][N];
int findSample(int n, int nums[], int host[], int type[]){
for (int i = 1; i < n; i++) {
if (type[i] == 0) IAmYourFriend(i, host[i]);
else if (type[i] == 1) MyFriendsAreYourFriends(i, host[i]);
else WeAreYourFriends(i, host[i]);
}
for (int i = 0; i < n; i++) {
// cout << i << ": ";
for (auto el : friends[i]) {
// cout << el << ' ';
isFriend[i][el] = 1;
}
// cout << "\n";
}
int ans = 0;
for (int i = 0; i < (1<<n); i++) {
vector <int> ids;
for (int j = 0; j < n; j++) {
if (i & (1<<j)) ids.pb(j);
}
bool no = 0;
for (auto el : ids)
for (auto el1 : ids) {
no |= isFriend[el][el1];
}
if (no) continue;
int sum = 0;
for (auto el : ids) {
// cout << el <<" ";
sum += nums[el];
}
// cout << ": " << sum << '\n';
ans = max(ans, sum);
}
return ans;
}
# | 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... |