#include "coreputer.h"
#include <bits/stdc++.h>
using namespace std;
std::vector<int> malfunctioning_cores(int n)
{
int parity;
vector<int> res(n), v(n);
int l = 0, r = n-1;
int cnt1 = 1, cnt2 = 0;
while(l<r)
{
int md = (l+r)/2;
vector<int> check;
for(int i = 0; i <= md; i++) check.push_back(i);
if((v[md]=run_diagnostic(check)) >= 0) r = md;
else l = md+1;
}
res[l]=1;
if(l==n-1) return res;
for(int i = 0; i < l; i++)
{
vector<int> check;
for(int j = 0; j <= l; j++) if(j!=i) check.push_back(j);
if(run_diagnostic(check) >= 0) res[i]=0;
else res[i]=1, cnt1++;
}
for(int i = l+1; i < n-1; i++)
{
vector<int> check;
for(int j = 0; j < l; j++) check.push_back(j);
check.push_back(i);
if(run_diagnostic(check) >= 0) res[i]=1, cnt2++;
}
parity=v[l];
if(parity==0)
{
if(cnt1==cnt2) res[n-1]=0;
else res[n-1]=1;
}
else
{
if((cnt1-1)==cnt2) res[n-1]=0;
else res[n-1]=1;
}
return res;
}