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;
#define int long long
// #define fastio ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define nl "\n"
vector<int> vec(int start, int end){
vector<int> v;
for (int i=start; i<=end; i++) v.push_back(i);
return v;
}
int query(int k, vector<int> v){
cout << k << " ";
for (auto i : v) cout << i << " ";
cout << endl;
int c;
cin >> c;
return c;
}
void answer(vector<int> v){
cout << "0 ";
for (auto i : v) cout << i << " ";
cout << endl;
}
signed main(){
int n;
cin >> n;
vector<int> costumes;
// set person 1 to have costume 1
int curmax = 1;
costumes.push_back(1);
for (int i=2; i<=n; i++){
//for person i
int lower = 1, upper = i-1;
while(upper-lower>0){
int mid = (lower+upper)/2;
vector<int> to_query = vec(lower, mid);
to_query.push_back(i);
if(query(mid-lower+1, vec(lower, mid))==query(mid-lower+2, to_query)) upper = mid;
else lower = mid+1;
}
vector<int> too_query;
too_query.push_back(i);
too_query.push_back(lower);
if(query(2, too_query)==1) costumes.push_back(costumes[lower-1]);
else{
costumes.push_back(curmax+1);
curmax++;
}
}
answer(costumes);
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... |