제출 #1231422

#제출 시각아이디문제언어결과실행 시간메모리
1231422lechaa사육제 (CEOI14_carnival)C++20
100 / 100
4 ms436 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; vector<int> j = {0}; for(int i = 0; i < n-1; i++){ cout << 2 << " " << i+1 << " " << i+2 << endl; int j1; cin >> j1; if(j1 == 2){ j.push_back(i+1); } } vector<int> nxt1(n+1, -2); vector<int> nxt(n+1, -1); for(int i = 0; i < j.size(); i++){ int low = 0; int top = i-1; int ns = -1; while(low <= top){ int mid = (low + top)/2; cout << i-mid+1 << " " << j[i]+1 << " "; int co = 1; for(int y = i-1; y >= mid; y--){ cout << j[y]+1 << " "; if(nxt[y] < mid){ co++; } }cout << endl; int h; cin >> h; if(h == co){ top = mid-1; }else{ ns = mid; low = mid+1; } } nxt[i] = ns; nxt1[j[i]] = ns; } cout << 0 << " "; int l = -1; int it = 1; vector<int> g(n+1); for(int y = 0; y < n; y++){ if(nxt1[y] == -2){ cout << l << " "; }else if(nxt1[y] <= -1){ g[y] = it; cout << it << " "; l = it; it++; }else{ g[y] = g[j[nxt1[y]]]; cout << g[j[nxt1[y]]] << " "; l = g[j[nxt1[y]]]; } }cout << endl; return 0; } //1 1 1 2 2 //1 2 1
#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...