# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
317056 | daniel920712 | Hidden Sequence (info1cup18_hidden) | C++14 | 2320 ms | 26000 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 < pair < vector < int > , int > > all;
vector < int > temp;
vector < int > tt;
queue < pair < vector < int > , int > > BFS;
vector < int > findSequence (int N)
{
int i,j,ok=0,now=0;
if(N<=10)
{
for(i=0;i<(1<<(N/2+1));i++)
{
temp.clear();
for(j=0;j<(N/2+1);j++)
{
if(i&(1<<j)) temp.push_back(1);
else temp.push_back(0);
}
all.push_back(make_pair(temp,isSubsequence(temp)));
}
for(i=0;i<(1<<N);i++)
{
temp.clear();
for(j=0;j<N;j++)
{
if(i&(1<<j)) temp.push_back(1);
else temp.push_back(0);
}
ok=1;
for(auto j:all)
{
now=0;
for(auto k:temp)
{
if(now<N/2+1&&k==j.first[now]) now++;
}
if(now==N/2+1&&j.second==0) ok=0;
if(now!=N/2+1&&j.second==1) ok=0;
}
if(ok)
{
//printf("aa\n");
return temp;
}
}
temp.clear();
return temp;
}
else
{
temp.clear();
temp.push_back(0);
BFS.push(make_pair(temp,1));
temp.clear();
temp.push_back(1);
BFS.push(make_pair(temp,1));
while(!BFS.empty())
{
temp=BFS.front().first;
if(isSubsequence(temp))
{
if(BFS.front().second==N) return temp;
tt=temp;
tt.push_back(0);
BFS.push(make_pair(tt,BFS.front().second+1));
tt=temp;
tt.push_back(1);
BFS.push(make_pair(tt,BFS.front().second+1));
}
BFS.pop();
}
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |