제출 #229570

#제출 시각아이디문제언어결과실행 시간메모리
229570dvdg6566사육제 (CEOI14_carnival)C++14
100 / 100
30 ms512 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> vi; typedef pair<ll,ll> pi; typedef vector<pi> vpi; typedef long double ld; #define pb emplace_back #define mp make_pair #define lb lower_bound #define ub upper_bound #define ALL(x) x.begin(), x.end() #define SZ(x) (ll)x.size() #define f first #define s second const ll MAXN = 300100; const ll INF = 1e18; const ll MOD = 1e9+7; int out[MAXN],N; int chk(int s, int e, int v){ int l=(e-s+1); if(v!=-1)++l; if(l==1)return 1; cout<<l<<' '; for(int i=s;i<=e;++i)cout<<i<<' '; if(v!=-1)cout<<v<<' '; cout<<endl; int t;cin>>t; return t; } int ask(int s, int e, int v){ if(s==e){return out[s];} int m=(s+e)/2; if (chk(s,m,v) == chk(s,m,-1))return ask(s,m,v); else return ask(m+1,e,v); } int main(){ //ios_base::sync_with_stdio(0);cin.tie(0); cin>>N; out[1]=1; int l=2; for(int i=2;i<=N;++i){ if(chk(1,i-1,i) != chk(1,i-1,-1)){ out[i]=l++; continue; } out[i]=ask(1,i-1,i); } cout<<0<<' ';for(int i=1;i<=N;++i)cout<<out[i]<<' ';cout<<endl; }
#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...