Submission #1187715

#TimeUsernameProblemLanguageResultExecution timeMemory
1187715not_amirCoreputer (IOI23_coreputer)C++20
100 / 100
0 ms408 KiB
#include <bits/stdc++.h>
using namespace std;

#include "coreputer.h"

vector<int> malfunctioning_cores(int N) {
    int l = 0, r = N - 1;
    vector<int> ans(N);
    while (l < r) {
        int m = (l + r) / 2;
        vector<int> v;
        for (int i = 0; i <= m; i++)
            v.push_back(i);
        int res = run_diagnostic(v);
        if (res == 0)
            ans[N - 1] = 1;
        if (res < 0)
            l = m + 1;
        else
            r = m;
    }
    ans[l] = 1;
    if (l < N - 1) {
        for (int i = 0; i < l; i++) {
            vector<int> v;
            for (int j = 0; j <= l; j++)
                if (j != i) v.push_back(j);
            if (run_diagnostic(v) < 0) ans[i] = 1, ans[N - 1] ^= 1;
        }
        for (int i = l + 1; i < N - 1; i++) {
            vector v = {i};
            for (int j = 0; j < l; j++) v.push_back(j);
            if (run_diagnostic(v) >= 0) ans[i] = 1, ans[N - 1] ^= 1;
        }
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...