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 <iostream>
#define MAXN 152
using namespace std;
int F[MAXN] = {0};
void busca (int x, int ini, int fim, int n) {
int C1, C2;
F[x] = n;
if (ini > fim) return;
if (ini == fim) {
if (ini == x) return;
cout << 2 << " " << x << " " << ini << endl;
cin >> C1;
if (C1 == 1) F[ini] = F[x];
return;
}
cout << fim-ini+(x < ini || x > fim);
for (int i = ini; i <= fim; i++) {
if (i == x) continue;
cout << " " << i;
}
cout << endl;
cin >> C1;
cout << fim-ini+1+(x < ini || x > fim);
cout << " " << x;
for (int i = ini; i <= fim; i++) {
if (i == x) continue;
cout << " " << i;
}
cout << endl;
cin >> C2;
if (C1 != C2) return;
int meio = (ini+fim)/2;
if (fim == meio) meio = ini;
busca(x, ini, meio, n);
busca(x, meio+1, fim, n);
}
int main () {
int N;
cin >> N;
int n = 0;
for (int i = 1; i <= N; i++) if (F[i] == 0) busca(i, 1, N, ++n);
cout << 0;
for (int i = 1; i <= N; i++) cout << " " << F[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... |