제출 #166553

#제출 시각아이디문제언어결과실행 시간메모리
166553CaroLinda사육제 (CEOI14_carnival)C++14
0 / 100
15 ms376 KiB
#include <bits/stdc++.h> #define lp(i,a,b) for(int i=a;i<b;i++) #define ff first #define ss second #define pb push_back #define mk make_pair #define pii pair<int,int> #define ll long long const int MAXN = 155 ; using namespace std ; int n ; int myType[MAXN] ; bool found(int l, int r, int cur) { if( l > r ) return false ; int res1, res2 ; cout << r-l+1 << endl ; lp(i,l,r+1) cout << i << " " ; cout << endl ; cin>> res1 ; cout << r-l+2 << endl << cur << " " ; lp(i,l,r+1) cout << i << " " ; cout << endl ; cin >> res2 ; if(res1 == res2) return true ; return false ; } int main() { ios_base::sync_with_stdio(false) ; cin.tie(NULL) ; cin >> n ; int cnt = 0 ; for(int i = 1 ; i <= n ; i++ ) { if( myType[i] > 0 ) continue ; queue<pii> fila ; myType[i] = ++cnt ; if( !found(i+1,n,i) ) continue ; fila.push(mk(i+1,n)) ; while(!fila.empty()) { int l = fila.front().ff , r = fila.front().ss , mid ; fila.pop() ; if( l == r ) { myType[l] = cnt ; continue ; } mid=(l+r)>>1 ; if( found(l,mid,i) ) fila.push( mk(l,mid) ) ; if( found(mid+1, r, i) ) fila.push(mk(mid+1,r)) ; } } lp(i,1,n+1) cout << myType[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...