# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
67094 | yusufake | Hidden Sequence (info1cup18_hidden) | C++14 | 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.
vector < int > findSequence (int n){
vector < int > u;
int i,j,h,k,lim,zz,it;
lim = 3*n/4 + 1;
for(i=0;i<=n/2;i++){
u.pb(1);
if(isSubsequence(u) == 0) break;
}
if(i <= n/2) { u.pop_back(); h = 1; k=i;}
else{
h = 0;
u.clear();
for(k=0; ;k++){
u.pb(0);
if(isSubsequence(u) == 0) break;
}
u.pop_back();
}
vector < int > ans = u;
zz = 0;
//cout << k << " ss\n";
//exit(0);
for(i=j=it=0;i<=k;i++,it++,j++){
//cout << i << " " << j << " " << it << " uu\n";
//if(i == 1) exit(0);
for(; u.size() <= lim && isSubsequence(u); j++){
u.insert(u.begin()+j , !h);
ans.insert(ans.begin()+it++ , !h);
}
// for(auto x : u) cout << x << " "; puts("");
if(isSubsequence(u)){
//cout << "wow";
if(zz) assert(0);
zz = it; }
else{
ans.erase(ans.begin()+--it);
//it++;
}
//cout << it << " it\n";
for(; j > i ; ) u.erase(u.begin() + --j);
// exit(0);
}
if(zz){
it = zz;
for(; ans.size() < n ;) ans.insert(ans.begin() + it++ , !h);
}
return ans;
}