Submission #1150073

#TimeUsernameProblemLanguageResultExecution timeMemory
1150073BlockOGFriend (IOI14_friend)C++20
11 / 100
15 ms1660 KiB
#include "friend.h"
#include <set>
#include <vector>

// meow meow meow mewo mrrow nya nya :3c
// go play vivid/stasis! it's very awesome gmae on steam

using namespace std;

vector<int> friends[10000];

int findSample(int n, int confidence[], int host[], int protocol[]) {
    if (n > 10) return 0;

    for (int i = 1; i < n; i++) {
        switch (protocol[i]) {
        case 0:
            friends[host[i]].push_back(i), friends[i].push_back(host[i]);
            break;
        case 1:
            for (int j : friends[host[i]]) friends[j].push_back(i), friends[i].push_back(j);
            break;
        case 2:
            for (int j : friends[host[i]]) friends[j].push_back(i), friends[i].push_back(j);
            friends[host[i]].push_back(i), friends[i].push_back(host[i]);
            break;
        }
    }

    int res = 0;
    for (int i = 0; i < (1 << n); i++) {
        set<int> used;
        int wow = 0;
        for (int j = 0, k = i; k; j++, k >>= 1) {
            if (k & 1) {
                if (used.count(j)) goto weh;
                wow += confidence[j];
                for (int ah : friends[j]) used.insert(ah);
            }
        }

        if (wow > res) res = wow;

    weh:;
    }

    return res;
}
#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...