Submission #1236872

#TimeUsernameProblemLanguageResultExecution timeMemory
1236872em4ma2사육제 (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 ,int st,int en){

  cout<<en - st + 2<<' '<<in<<' ';
  for(int i = st;i <= en;i++)cout<<bin[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, 0, bin.size() - 1);
    if(c > bin.size()){
      bin.push_back(i);
      ans[i] = bin.size();
      continue ;
    }

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

      c = que(i ,st , mid);
      if(c == (mid-st+1)){
        en = mid - 1;
        ans[i] = ans[mid + 1];
      }
      else{
        st = mid + 1;
      }
     
    }
  } 
  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...