Submission #585045

#TimeUsernameProblemLanguageResultExecution timeMemory
585045MazaalaiFriend (IOI14_friend)C++17
0 / 100
1085 ms1392 KiB
#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 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...