Submission #47616

#TimeUsernameProblemLanguageResultExecution timeMemory
47616IvanC사육제 (CEOI14_carnival)C++17
100 / 100
24 ms656 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 161; int pai[MAXN],cor[MAXN],N,jafoi,anterior[MAXN]; int find(int x){ if(x == pai[x]) return x; return pai[x] = find(pai[x]); } void join(int x,int y){ x = find(x); y = find(y); if(x == y) return; if(x > y) swap(x,y); pai[y] = x; } int main(){ cin >> N; for(int i = 1;i<=N;i++) pai[i] = i; anterior[1] = 1; for(int u = 2;u<=N;u++){ cout << u; for(int i = 1;i<=u;i++){ cout << " " << i; } cout << endl; cin >> anterior[u]; if(anterior[u] == anterior[u-1] + 1) continue; for(int i = 1;i<=u;i++){ if(find(i) != i) continue; cout << 2 << " " << i << " " << u << endl; int qtd; cin >> qtd; if(qtd == 2) continue; join(u,i); break; } } cout << 0; for(int i = 1;i<=N;i++){ if(cor[find(i)] == 0){ cor[find(i)] = ++jafoi; } cout << " " << cor[find(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...