#include <iostream>
#include <vector>
using namespace std;
int col[500];
int ask(vector<int> vec, int ex = 0){
if (!!ex)
vec.push_back(ex);
cout<<vec.size()<<' ';
for (int i : vec)
cout<<i<<' ';
cout<<endl;
cin>>ex;
return ex;
}
int main(){
int n;
cin>>n;
for (int i=1, c = 1;i<=n;i++){
if (col[i] == 0)
col[i] = c++;
vector<int> vec, lft, rgt;
for (int j=i+1;j<=n;j++)
vec.push_back(j);
if (ask(vec) != ask(vec, i))
continue;
while (vec.size() > 1){
lft.clear();
rgt.clear();
for (int j=0;j<vec.size();j++){
if (vec.size() - j <= lft.size())
rgt.push_back(vec[j]);
else
lft.push_back(vec[j]);
}
if (ask(lft) == ask(lft, i))
vec = lft;
else
vec = rgt;
}
col[vec[0]] = col[i];
}
for (int i=0;i<=n;i++)
cout<<col[i]<<' ';
cout<<endl;
}
# | 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... |