제출 #1053233

#제출 시각아이디문제언어결과실행 시간메모리
1053233Malix사육제 (CEOI14_carnival)C++14
100 / 100
4 ms600 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vii; typedef pair<int,int> pi; typedef vector<pi> pii; typedef tuple<int,int,int> tii; typedef vector<ll> li; typedef vector<li> lii; #define REP(i,a,b) for(int i=a;i<b;i++) #define F first #define S second #define PB push_back #define MP make_pair #define LSOne(s) ((s)&(-s)) ll INF=1e18+10; int inf=1e9+10; ll M=1e9+7; int BS(int l,int r,int x,vi &a){ if(l==r)return l; int m=(l+r)/2; cout<<m-l+2<<" "; REP(i,l,m+1)cout<<a[i]<<" "; cout<<x; cout<<endl; int t;cin>>t; if(t==m-l+2)return BS(m+1,r,x,a); else return BS(l,m,x,a); } int main() { // ios::sync_with_stdio(0); // cin.tie(0); // freopen("test_input.txt", "r", stdin); // freopen("test_output.txt", "w", stdout); int n;cin>>n; vi a; a.PB(1); int k=1; REP(i,2,n+1){ a.PB(i);k++; cout<<k<<" "; for(auto u:a)cout<<u<<" "; cout<<endl; int x;cin>>x; if(x!=k){ k--; a.pop_back(); } } map<int,int> mp; REP(i,0,k)mp[a[i]]=i+1; REP(i,1,n+1){ if(mp[i]!=0)continue; mp[i]=mp[a[BS(0,k-1,i,a)]]; } cout<<0<<" "; REP(i,1,n+1)cout<<mp[i]<<" "; cout<<endl; 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...