Submission #113668

#TimeUsernameProblemLanguageResultExecution timeMemory
113668Adhyyan1252Carnival (CEOI14_carnival)C++11
100 / 100
10 ms520 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[diff[mid]]; } cout<<0<<" "; for(int i = 0; i < n; i++) cout<<a[i]<<" "; cout<<endl; }

Compilation message (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...