#include "coreputer.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> malfunctioning_cores(int n){
int l = 0, r = n - 1, res = -1, ev = 0;
while(l <= r){
int md = (l + r) / 2;
vector<int> t;
for(int i = 0;i<=md;i++) t.push_back(i);
int c = run_diagnostic(t);
if(c >= 0){
if(c == 0) ev = 1;
res = md;
r = md - 1;
}else{
l = md + 1;
}
}
vector<int> ans(n);
ans[res] = 1;
int cnt = 1;
for(int i = 0;i<res;i++){
if(i == n - 1){
if(ev && cnt % 2 == 1){
ans[i] = 1;
break;
}else if(!ev && cnt % 2 == 0){
ans[i] = 1;
break;
}
break;
}
vector<int> t;
for(int j = 0;j<=res;j++){
if(j != i) t.push_back(j);
}
if(run_diagnostic(t) < 0){
ans[i] = 1;
++cnt;
}
}
for(int i = res + 1;i<n;i++){
if(i == n - 1){
if(ev && cnt % 2 == 1){
ans[i] = 1;
break;
}else if(!ev && cnt % 2 == 0){
ans[i] = 1;
break;
}
break;
}
vector<int> t;
for(int j = (ev ? res + 1 : res);j<n;j++){
if(j != i) t.push_back(j);
}
if(run_diagnostic(t) < 0){
ans[i] = 1;
++cnt;
}
}
return ans;
}