#include "coreputer.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> malfunctioning_cores(int N) {
vector<int> ans(N);
int lo = 0, hi = N-1;
int x = 0;
while (lo < hi) {
int mid = (lo+hi)/2;
vector<int> v;
for (int i = 0; i <= mid; i++) v.push_back(i);
int res = run_diagnostic(v);
if (res == -1) lo = mid+1;
else hi = mid, x = res;
v.clear();
}
ans[hi] = 1;
int mx = N-hi-1;
vector<int> v;
for (int i = hi+1; i < N; i++) v.push_back(i);
for (int i = 0; i < hi; i++) {
if (!mx) break;
v.push_back(i);
int res = run_diagnostic(v);
if (res > 0) {
ans[i] = 1;
mx--;
}
else ans[i] = 0;
v.pop_back();
}
v.clear();
for (int i = hi+1; i < N-1; i++) {
for (int j = hi; j < N; j++) {
if (j != i) v.push_back(j);
}
int res = run_diagnostic(v);
if (res > 0) ans[i] = 0;
else ans[i] = 1;
v.clear();
}
int a = 0, b = 0;
for (int i = 0; i <= hi; i++) a += ans[i];
for (int i = hi+1; i < N-1; i++) b += ans[i];
if (a-b != x) ans[N-1] = 1;
else ans[N-1] = 0;
return ans;
}