제출 #913973

#제출 시각아이디문제언어결과실행 시간메모리
913973LCJLYCoreputer (IOI23_coreputer)C++17
80 / 100
1 ms756 KiB
#include "coreputer.h" #include <bits/stdc++.h> using namespace std; vector<int>malfunctioning_cores(int n) { int l=0; int r=n-2; int mid; int best=n-1; bool even=false; while(l<=r){ mid=(l+r)/2; vector<int>v; for(int x=0;x<=mid;x++){ v.push_back(x); } int hold=run_diagnostic(v); if(hold==1||hold==0){ best=mid; r=mid-1; } else l=mid+1; } set<int>se; se.insert(best); for(int x=best+1;x<n;x++){ vector<int>v; for(int y=0;y<=x;y++){ if(se.find(y)!=se.end()) continue; v.push_back(y); } int hold=run_diagnostic(v); if(hold==0) even=true; if(hold==1||hold==0){ se.insert(x); } } int best2=n; set<int>se2; if(even){ best2=*se.begin(); se2.insert(*se.begin()); se.erase(se.begin()); se2.insert(*se.begin()); se.erase(se.begin()); } else{ best2=*se.begin(); se2.insert(*se.begin()); } for(int x=best2-1;x>=0;x--){ vector<int>v; for(int y=n-1;y>=x;y--){ if(se2.find(y)!=se2.end()) continue; v.push_back(y); } int hold=run_diagnostic(v); if(hold==1||hold==0){ se2.insert(x); } } for(auto it:se2) se.insert(it); vector<int>ans; for(int x=0;x<n;x++){ if(se.find(x)==se.end()) ans.push_back(0); else ans.push_back(1); } return ans; } //code
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...