Submission #1236890

#TimeUsernameProblemLanguageResultExecution timeMemory
1236890em4ma2Carnival (CEOI14_carnival)C++20
0 / 100
2 ms432 KiB
#include <bits/stdc++.h>
using namespace std;

//#define int long long
#define fi first
#define se second
#define all(a) a.begin(),a.end()
const int maxn = 2 * 1e6;
const int mod =  1e9 + 7;
 vector <int> bin = {1};

int que(int in ,vector <int> tem){
  cout<<tem.size() + 1<<' '<<in<<' ';
  for(int i : tem)cout<<i<<' ';
  cout<<endl;

  int an;
  cin>>an;
  return an;
}
signed main(){
    ios::sync_with_stdio(false);
cin.tie(nullptr);
  int n;
  cin>>n;

  vector <int> ans(n + 1, 0);
  ans[1] = 1;

  for(int i = 2;i <= n;i++){

    int c = que(i,bin);
    if(c > bin.size()){
      bin.push_back(i);
      ans[i] = bin.size();
      continue ;
    }

    int st = 0,en = bin.size() - 1,mid;
    int x;
    while(st <= en){
      mid = (st + en )/2;

      vector <int> t;
      for(int i = st;i <= mid;i++){
        t.push_back(bin[i]);

      }

      c = que(i, t);
      if(c == (t.size()+1)){
        en = mid - 1;
        x=ans[mid+1];
      }
      else{
        st = mid + 1;
      }
    }
    ans[i]=x;
  } 
  cout<<0<<' ';
  for(int i = 1;i <= n;i++)cout<<ans[i]<<' ';
  return 0;
}
#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...