답안 #914579

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
914579 2024-01-22T10:59:03 Z sunwukong123 도서관 (JOI18_library) C++14
0 / 100
28 ms 976 KB
#include <bits/stdc++.h>
#include "library.h"
using namespace std;
#ifdef LOCAL
void debug_out() {cerr<<endl;}
template <typename Head, typename... Tail>
void debug_out(Head _H, Tail... _T) {cerr<<" "<<to_string(_H);debug_out(_T...);}
#define debug(...) cerr<<"["<<#__VA_ARGS__<<"]:",debug_out(__VA_ARGS__)
#else
#define debug(...)
#endif
const int MAXN = -1;
const int inf=1000000500ll;
const long long oo =1000000000000000500ll;
const int MOD = (int)1e9 + 7;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
typedef pair<int,int> pi; 

vector<int>adj[1005];
void Solve(int n)
{
	if(n<=2){
		vector<int>Ans;Ans.push_back(1);Ans.push_back(2);
		return Answer(Ans);
	}
	vector<int>books(n,1);
	vector<int> roots;
	set<int> ele;
	for(int i=1;i<=n;i++){
		books[i-1]=0;
		if(Query(books)==1)roots.push_back(i);
		else{
			ele.insert(i);
		}
		books[i-1]=1;
	}
	ele.insert(roots.back());
	roots.pop_back();
	for(int i=2;i<=n;i++){
		int x=roots.back();
		vector<int> cand;
		for(auto x:ele)cand.push_back(x);
		int lo=-1,hi=cand.size();
		while(lo<hi-1){
			int mi=(lo+hi)/2;
			vector<int> qq(n,0);
			for(int e=0;e<=mi;e++){
				qq[cand[e]-1]=1;
			}
			int r1=Query(qq);
			qq[x-1]=1;
			int r2=Query(qq);
			if(r1==r2){ //have the next root
				hi=mi;
			} else {
				lo=mi;
			}
		}
		assert(hi!=cand.size());
		ele.erase(cand[hi]);
		roots.push_back(cand[hi]);
	}
	Answer(roots);
}

Compilation message

In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from library.cpp:1:
library.cpp: In function 'void Solve(int)':
library.cpp:59:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |   assert(hi!=cand.size());
      |          ~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 19 ms 464 KB # of queries: 2576
2 Correct 25 ms 876 KB # of queries: 2559
3 Correct 25 ms 720 KB # of queries: 2716
4 Correct 21 ms 724 KB # of queries: 2706
5 Correct 26 ms 624 KB # of queries: 2720
6 Correct 28 ms 976 KB # of queries: 2712
7 Correct 24 ms 464 KB # of queries: 2694
8 Correct 25 ms 472 KB # of queries: 2589
9 Correct 28 ms 976 KB # of queries: 2697
10 Correct 13 ms 460 KB # of queries: 1583
11 Incorrect 1 ms 344 KB Wrong Answer [4]
12 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 19 ms 464 KB # of queries: 2576
2 Correct 25 ms 876 KB # of queries: 2559
3 Correct 25 ms 720 KB # of queries: 2716
4 Correct 21 ms 724 KB # of queries: 2706
5 Correct 26 ms 624 KB # of queries: 2720
6 Correct 28 ms 976 KB # of queries: 2712
7 Correct 24 ms 464 KB # of queries: 2694
8 Correct 25 ms 472 KB # of queries: 2589
9 Correct 28 ms 976 KB # of queries: 2697
10 Correct 13 ms 460 KB # of queries: 1583
11 Incorrect 1 ms 344 KB Wrong Answer [4]
12 Halted 0 ms 0 KB -