제출 #1309544

#제출 시각아이디문제언어결과실행 시간메모리
1309544wetsponge사육제 (CEOI14_carnival)C++20
100 / 100
3 ms420 KiB
#include <bits/stdc++.h> using namespace std; #define mod 1000000007 #define int long long int n; vector <int> curr; int arr[300001]; int num=1; int ask(vector <int> curr){ cout<<curr.size()<<" "; for(int j:curr) cout<<j<<" "; cout<<endl; int ans; cin>>ans; return ans; } int solve(vector <int> v,int i){ int l=0,r=v.size()-1,idx=-1; while(l<=r){ int mid=(l+r)/2; vector <int> query; for(int j=l;j<=mid;j++){ query.push_back(v[j]); } query.push_back(i); if(ask(query)==(int)query.size()-1){ idx=v[mid]; r=mid-1; } else l=mid+1; query.clear(); } return idx; } signed main() { int n; cin>>n; for(int i=1;i<=n;i++){ curr.push_back(i); if(ask(curr)==curr.size()){ arr[i]=num++; continue; } curr.pop_back(); arr[i]=arr[solve(curr,i)]; } cout<<0<<" "; for(int i=1;i<=n;i++) cout<<arr[i]<<" "; cout<<endl; return 0; } //g++ -std=c++17 template.cpp -o executable.exe
#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...