Submission #1229304

#TimeUsernameProblemLanguageResultExecution timeMemory
1229304MarwenElarbiCoreputer (IOI23_coreputer)C++20
0 / 100
0 ms408 KiB
#include "coreputer.h" #include <bits/stdc++.h> using namespace std; std::vector<int> malfunctioning_cores(int N) { int l=0; int r=N-1; bool lst=false; vector<int> ans; int nab; while(r-l>1){ int mid=(r+l)/2; vector<int> cur; for (int i = 0; i <= mid; ++i) { cur.push_back(i); } int cnt=run_diagnostic(cur); nab=cnt; lst|=(cnt==0); if(cnt<=0) l=mid; else r=mid; } if(nab==1){ vector<int> res(N,0); res[0]=1; return res; } if(lst==1){ ans.push_back(r); for (int i = r+1; i < N; ++i) { vector<int> cur; cur.push_back(i); for (int j = 0; j <= l; ++j) { cur.push_back(j); } if(run_diagnostic(cur)==1) ans.push_back(i); } int half=ans.size(); for (int i = 0; i < l; ++i) { vector<int> cur; for (int j = 0; j < half; ++j) { cur.push_back(ans[j]); } cur.push_back(i); if(run_diagnostic(cur)>0) ans.push_back(i); } if(ans.size()%2) ans.push_back(l); sort(ans.begin(),ans.end()); vector<int> res(N,0); for (auto u:ans) { res[u]=1; } return res; }else{ ans.push_back(r); for (int i = r+1; i < N; ++i) { vector<int> cur; cur.push_back(i); for (int j = 0; j <= l; ++j) { cur.push_back(j); } if(run_diagnostic(cur)==1) ans.push_back(i); } int half=ans.size()-1; for (int i = 0; i < l; ++i) { vector<int> cur; for (int j = 0; j < half; ++j) { cur.push_back(ans[j]); } cur.push_back(i); if(run_diagnostic(cur)>0) ans.push_back(i); } if(ans.size()%2==0) ans.push_back(l); sort(ans.begin(),ans.end()); vector<int> res(N,0); for (auto u:ans) { res[u]=1; } return res; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...