# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
352364 | Sho10 | Hidden Sequence (info1cup18_hidden) | C++17 | 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> //Andrei Alexandru a.k.a Sho10
#include "grader.h"
#define ll long long
#define double long double
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define aint(a) (a).begin(), (a).end()
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define MAXN 100005
#define INF 1000000005
#define LINF 1000000000000000005ll
#define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll query(ll x1,ll x2,ll val){
vector<int>v;
for(ll i=1;i<=x1;i++)
{
v.pb(val);
}
for(ll i=1;i<=x2;i++)
{
v.pb((val^1));
}
return isSequence(v);
}
vector<int> findSequence(int N){
ll n=N,cnt0=0,cnt1=0;
for(ll i=1;i<=n;i++){
if(!query(i,0,0)){
cnt0=i-1;
cnt1=n-cnt0;
break;
}
if(!query(i,0,1)){
cnt1=i-1;
cnt0=n-cnt1;
break;
}
}
ll l0=0,l1=0,r0=cnt0,r1=cnt1;
vector<int>ans;
for(ll i=1;i<=n;i++)
{
ll res;
if(l0+r1+1<=n/2+1){
if(query(l0+1,r1,0)){
res=0;
}else res=1;
}else {
if(query(l1+1,r0,1)){
res=1;
}else res=0;
}
if(res){
l1++;
r1--;
}else {
l0++;
r0--;
}
ans.pb(res);
}
return ans;
}
/*
int32_t main(){
CODE_START;
*/