This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |