| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1349024 | yc11 | Library (JOI18_library) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#include "library.h"
using namespace std;
void Solve(int N)
{
vector<int> x;
vector<int> m;
vector<int> ans;
int x1;
m.assign(N,1);
for (int i = 0;i<N;i++) x.push_back(i+1);
for (int i =0;i<N;i++){
m[i] = 0;
if (Query(m)==1){x.erase(x.begin()+i);x1 = i;ans.push_back(i+1);break;}
m[i] = 1;
}
m.assign(N,0);
for (int i = 0;i<N;i++){
if (ans.empty()) break;
int d = 0;
int a = 0;
int b = x.size()-1;
if (x.empty()) break;
while (a<b){
d++;
if (d>100) break;
int y = (a+b)/2;
m[0]=1;
for (int j = a;j<=y;j++) {m[0 = 1;}
int z = Query(m);
m[0] = 0;
int z1 = Query(m);
if (z==z1) b = y;
else a = y+1;
m.assign(N,0);
}
if (a<0 or a>x.size()-1) break;
ans.push_back(x[a]);
if (ans.size()==N) break;
x.erase(x.begin()+a);
m.assign(N,0);
}
Answer(ans);
}