This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "coreputer.h"
#include<bits/stdc++.h>
using namespace std;
vector<int> malfunctioning_cores(int N){
int l=0,r=N-1;
vector<int> ans(N,-1);
int cnt=0;
bool even=false;
while(l<r){
int m=(l+r)/2;
vector<int> res;
for(int i=0;i<=m;i++)res.emplace_back(i);
int tmp=run_diagnostic(res);
even|=tmp==0;
if(tmp==-1)l=m+1;
else r=m;
}
ans[l]=1;
cnt++;
for(int i=0;i<l&&cnt<N-1;i++){
vector<int> res;
for(int j=0;j<=l;j++)if(j!=i)res.emplace_back(j);
ans[i]=run_diagnostic(res)==-1;
cnt++;
}
for(int i=l+1;i<N&&cnt<N-1;i++){
vector<int> res;
for(int j=0;j<l;j++)res.emplace_back(j);
if(even)res.emplace_back(l);
res.emplace_back(i);
ans[i]=run_diagnostic(res)==1;
cnt++;
}
int suml=0,sumr=0;
for(int i=0;i<l;i++)suml+=ans[i]==-1?0:ans[i];
for(int i=l+1;i<N;i++)sumr+=ans[i]==-1?0:ans[i];
if(even)suml++;
for(int i=0;i<N;i++)if(ans[i]==-1)ans[i]=abs(suml-sumr);
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |