제출 #113667

#제출 시각아이디문제언어결과실행 시간메모리
113667Adhyyan1252사육제 (CEOI14_carnival)C++11
0 / 100
10 ms384 KiB
#include<bits/stdc++.h>

using namespace std;

int query(const vector<int>& a){
	if(a.size() == 0) return 0;
	cout<<a.size()<<endl;
	for(int b: a) cout<<b+1<<" ";
	cout<<endl;
	int ret; cin>>ret;
	return ret;
}

int main(){
	int n; cin>>n;
	vector<int> a(n, -1);
	a[0] = 1;
	int pntr = 2;
	vector<int> diff; diff.push_back(0);
	for(int i = 1; i < n; i++){
		int low = 0, high = diff.size()-1, mid;
		vector<int> c(diff); c.push_back(i);
		if(query(c) == c.size()){
			//this is a new one
			a[i]= pntr; pntr++;
			diff.push_back(i);
			continue;
		}
		while(low < high){
			mid = (low + high)/2;
			
			vector<int> b(diff.begin() + low, diff.begin() + mid + 1);
			b.push_back(i);
			int q = query(b);
			if(q == (int)(b.size()-1)){
				//means that they share the shit
				high = mid;
			}else{
				low = mid+1;
			}
		}
		mid = (low + high)/2;
		a[i] = a[mid];
	}
	cout<<0<<" ";
	for(int i = 0; i < n; i++) cout<<a[i]<<" ";
	cout<<endl;
}

컴파일 시 표준 에러 (stderr) 메시지

carnival.cpp: In function 'int main()':
carnival.cpp:23:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(query(c) == c.size()){
      ~~~~~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...