이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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... |