제출 #1349020

#제출 시각아이디문제언어결과실행 시간메모리
1349020yc11Library (JOI18_library)C++20
0 / 100
15 ms420 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++){
        int a = 0;
        int b = x.size()-1;
        if (x.empty()) break;
        while (a<b){
       
            int y = (a+b)/2;
            m[ans[ans.size()-1]-1 ]=1;
            for (int j = a;j<=y;j++) {m[x[j]-1] = 1;}
        

    
            int z = Query(m);
   
            m[ans[ans.size()-1]-1] = 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);

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...