#include <cstdio>
#include <vector>
#include <bits\stdc++.h>
#include "library.h"
using namespace std;
int f[2000];
vector<int>num , erge;
set<int>comp;
deque<int> ed[2000];
void Solve(int menge){
int erg , cmp , numm , nummer;
vector<int> M(menge);
for(int i = 0 ; i > menge ; i++){
M[i] = 0;
}
for(int i = 0 ; i < menge ;i++){
num.push_back(i + 1);
}
for(int i = 1; i <= menge ; i++){
ed[i].push_back(i);
}
int st , en , mit;
erg = 1;
// cout << "ja\n";
for(int i = 2 ; i <= menge ; i++){
for(int j = 1 ; j <= i ;j++){
M[j - 1] = 1;
}
// for(int j = 0 ; j < M.size() ; j++){
// cout << M[j] << " ";
// }
// cout << "\n";
numm = Query(M);
for(int j = 1 ; j <= i ;j++){
M[j] = 0;
}
// cout << erg << ' ' << numm << "\n";
if(numm == erg){
// cout << "eins\n";
st = 1; en = i - 1;
while(st <= en){
mit = (st + en)/2;
// cout << mit << ' ';
for(int j = 0 ; j < menge ; j++){
if(num[j] <= mit){
M[j] = 1;
comp.insert(num[j]);
}
}
M[i - 1] = 1;
// for(int j = 0 ; j < menge ; j++){
// cout << M[j] << ' ';
// }
// cout << "\n";
nummer = Query(M);
// cout << numm << "\n";
for(int j = 0 ; j < menge ; j++){
M[j] = 0;
}
if(nummer == comp.size()){
// cout << "en\n";
en = mit - 1;
}
else{
st = mit + 1;
// cout << "st\n";
}
comp.clear();
}
// cout << st << "\n";
// cout << ed[st].size() << "\n";
num[i - 1] = st;
M[i - 1] = 1;
M[ed[st].front() - 1] = 1;
if(Query(M) == 1){
ed[st].push_front(i);
}
else{
ed[st].push_back(i);
}
M[i - 1] = 0;
M[ed[st].front()] = 0;
}
else if(numm < erg){
// cout << "zwei\n";
int er ,zw;
st = 1; en = i - 1;
while(st <= en){
mit = (st + en)/2;
for(int j = 0 ; j < menge ; j++){
if(num[j] <= mit){
M[j] = 1;
comp.insert(num[j]);
}
}
M[i - 1] = 1;
nummer = Query(M);
for(int j = 0 ; j < menge ; j++){
M[j] = 0;
}
if(nummer <= comp.size()){
en = mit - 1;
}
else{
st = mit + 1;
}
comp.clear();
}
er = st;
M[i - 1] = 1;
M[ed[st].front() - 1] = 1;
if(Query(M) == 1){
ed[st].push_front(i) ;
}
else{
ed[st].push_back(i) ;
}
M[i - 1] = 0;
M[ed[st].front()] = 0;
st = 1; en = i - 1;
while(st <= en){
mit = (st + en)/2;
// cout << mit << "\n";
for(int j = 0 ; j < menge ; j++){
if(num[j] <= mit){
M[j] = 1;
comp.insert(num[j]);
}
}
M[i - 1] = 1;
nummer = Query(M);
for(int j = 0 ; j < menge ; j++){
M[j] = 0;
}
if(nummer < comp.size()){
en = mit - 1;
}
else{
st = mit + 1;
}
comp.clear();
}
zw = st;
// cout << er << ' ' << zw << "\n";
M[i - 1] = 1;
M[ed[st].front() - 1] = 1;
if(Query(M) == 1){
ed[st].push_front(i);
}
else{
ed[st].push_back(i);
}
M[i - 1] = 0;
M[ed[st].front()] = 0;
if(ed[er].front() == ed[zw].back()){
ed[er].pop_front();
while(ed[zw].size()){
num[ed[zw].back() - 1] = er;
ed[er].push_front(ed[zw].back());
ed[zw].pop_back();
}
}
else if(ed[er].front() == ed[zw].front()){
ed[er].pop_front();
while(ed[zw].size()){
num[ed[zw].front() - 1] = er;
ed[er].push_front(ed[zw].front());
ed[zw].pop_front();
}
}
else if(ed[er].back() == ed[zw].front()){
ed[er].pop_back();
while(ed[zw].size()){
num[ed[zw].front() - 1] = er;
ed[er].push_back(ed[zw].front());
ed[zw].pop_front();
}
}
else{
ed[er].pop_back();
while(ed[zw].size()){
num[ed[zw].back() - 1] = er;
ed[er].push_back(ed[zw].back());
ed[zw].pop_back();
}
}
}
erg = numm;
// for(int i = 0 ; i < num.size() ; i++){
// cout << num[i] << ' ';
// }
// cout << "\n";
}
while(ed[num[0]].size()){
// cout << ed[num[0]].front() << "\n";
erge.push_back(ed[num[0]].front());
ed[num[0]].pop_front();
}
Answer(erge);
}
Compilation message
library.cpp:4:10: fatal error: bits\stdc++.h: No such file or directory
4 | #include <bits\stdc++.h>
| ^~~~~~~~~~~~~~~
compilation terminated.