#include <bits/stdc++.h>
using namespace std;
#define int long long
vector<int> couleurs;
bool check(int fin, int pos) {
cout << fin + 1 << " ";
for (int i = 0; i < fin; i++)
{
cout << couleurs[i] +1 << " ";
}
cout << pos +1 << endl;
int ans;
cin >> ans;
return (ans == fin + 1);
}
int dicho(int pos) {
int l = 0; int r = couleurs.size();
while (r - l > 1) {
int mid = (l + r) / 2;
if (check(mid, pos)) {
l = mid;
}
else {
r = mid;
}
}
return l;
}
signed main() {
ios_base::sync_with_stdio(false); cin.tie(0), cout.tie(0);
int n;
cin >> n;
int nbCoul = 0;
vector<int> reponse(n, 0);
for (int i = 0; i < n; i++)
{
cout << i+1 << " ";
for (int j = 0; j < i+1; j++)
{
cout << j +1 << " ";
}
cout << endl;
int ans;
cin >> ans;
if (ans != nbCoul) {
nbCoul++;
reponse[i] = nbCoul;
couleurs.push_back(i);
}
else {
reponse[i] = dicho(i) + 1;
}
}
cout << "0 ";
for (int i = 0; i < n; i++)
{
cout << reponse[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... |