# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
96489 | KLPP | Hidden Sequence (info1cup18_hidden) | C++14 | 380 ms | 580 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;
vector < int > findSequence (int N)
{
int zeros,ones;
zeros=-1;
ones=-1;
for(int i=1;i<=N/2+1;i++){
vector<int> query(i);
for(int j=0;j<i;j++)query[j]=0;
if(!isSubsequence(query)){
zeros=i-1;
i=N/2+1;
}
}
if(zeros!=-1)ones=N-zeros;
for(int i=1;i<=N/2+1;i++){
vector<int> query(i);
for(int j=0;j<i;j++)query[j]=1;
if(!isSubsequence(query)){
ones=i-1;
i=N/2+1;
}
}
if(ones!=-1)zeros=N-ones;
vector<int> ans;
if(zeros==0){
for(int i=0;i<N;i++)ans.push_back(1);
return ans;
}
if(ones==0){
for(int i=0;i<N;i++)ans.push_back(0);
return ans;
}
vector<int> query;
int obj=0;
if(zeros>=ones){
obj=1;
swap(ones,zeros);
}
int maxLength=N/2;
maxLength++;
//cout<<obj<<" "<<zeros<<" "<<ones<<" "<<maxLength<<endl;
int answer[zeros+1][zeros+1];
for(int a=0;a<=zeros;a++){
for(int b=0;a+b<=zeros;b++){
int lo,hi;
lo=0;
hi=maxLength-a-b+1;
//cout<<hi<<endl;
while(hi-lo>1){//cout<<hi<<" "<<lo<<endl;
int mid=(lo+hi)/2;
//cout<<"M"<<mid<<endl;
for(int i=0;i<a;i++)query.push_back(obj);
for(int i=0;i<mid;i++)query.push_back(1-obj);
for(int i=0;i<b;i++)query.push_back(obj);
//cout<<"Sz"<<query.size()<<endl;
/*for(int i=0;i<query.size();i++)cout<<query[i]<<" ";
cout<<endl;*/
if(!isSubsequence(query)){
hi=mid;
}else lo=mid;
query.clear();
}//cout<<hi<<" "<<lo<<endl;
answer[a][b]=lo;
//cout<<lo<<" ";
}//cout<<endl;
}
int S[zeros+1];
for(int i=0;i<=zeros;i++){
S[i]=answer[0][zeros-i];
for(int j=0;j<i;j++)S[i]=max(S[i],S[j]+answer[j+1][zeros-i]);
}
int D[zeros+1];
D[0]=S[0];
for(int i=0;i<zeros;i++)D[i+1]=S[i+1]-S[i];
for(int i=0;i<=zeros;i++){
for(int j=0;j<D[i];j++)ans.push_back(1-obj);
if(i!=zeros)ans.push_back(obj);
}
return ans;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |