# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
908258 | 2024-01-16T10:39:05 Z | zyq181 | Coreputer (IOI23_coreputer) | C++17 | 0 ms | 0 KB |
#include "coreputer.h" #include <bits/stdc++.h> using namespace std; vector<int> malfunctioning_cores(int N){ vector<int> them; int sz; vector<int> q; int ret; int cur; for(int a=0; a<N; a+=2){ q.push_back(a); } ret = run_diagnostic(q); if(ret == 1){ int t; q.clear(); for(int a=1; a<N; a+=2) q.push_back(a); for(int a=0; a<N; a+=2){ q.push_back(a); t = run_diagnostic(q); if(t != -1){ cur = a; them.push_back(a); break; } } for(int a=cur+2; a<N; a+=2){ q.pop_back(); q.push_back(a); if(run_diagnostic(q) != -1){ them.push_back(a); } } int k = them.size(); if(t == 0){ k--; } for(int a=0; a<k-1; a++){ q.push_back(them[a]); } q.push_back(0); for(int a=1; a<N; a+=2){ q.pop_back(); q.push_back(a); if(run_diagnostic != -1) them.push_back(a); } } else{ int t; for(int a=1; a<N; a+=2){ q.push_back(a); t = run_diagnostic(q); if(t != ret){ cur = a; them.push_back(a); break; } } for(int a=cur+2; a<N; a+=2){ q.pop_back(); q.push_back(a); if(run_diagnostic(q) != ret){ them.push_back(a); } } int k = them.size(); if(ret == 0 || t == 0){ k--; } for(int a=0; a<k-1; a++){ q.push_back(them[a]); } q.push_back(0); for(int a=0; a<N; a+=2){ q.pop_back(); q.push_back(a); if(run_diagnostic != -1) them.push_back(a); } } sort(them.begin(), them.end(), greater<int>()); vector<int> r; for(int a=0; a<N; a++){ if(them.back() == a){ r.push_back(1); them.pop_back(); } else{ r.push_back(0); } } return r; }