# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
472085 | nickmet2004 | Hidden Sequence (info1cup18_hidden) | C++11 | 0 ms | 0 KiB |
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>
#include "grader.h"
using namespace std;
int N , Q;
bool ask(int x , int y , int c){
vector<int> v;
while(x--)v.emplace_back(c);
while(y--)v.emplace_back(c^1);
return v;
}
vector<int> findSequence(int n){
int n0 = 0 , n1 = 0;
for(int i =1; i <= n; ++i){
if(!ask(i , 0, 0)){
n0 = i - 1;
n1 = n - n0;
break;
}
if(!ask(i,0,1)){
n1 = i - 1;
n0 = n - n1;
break;
}
}
int a0 =0 ,b0 =0, a1=n0 , b1 = n1;
int q= 0;
vector<int> ans;
ans.resize(n);
for(int i =1; i <= n; ++i){
if(a0 + b1 <= n/2){
if(!ask(a0 + 1 , b1 , 0)) q = 1;
else q = 0;
} else {
if(!ask(a1 + 1 , b0 , 1)) q = 0;
else q = 1;
}
if(q){
a1++;b1--;
ans.push_back(1);
}else{
a0++; b0--;
ans.push_back(0);
}
}
return ans;
}