| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1313083 | neonglitch | Hidden Sequence (info1cup18_hidden) | C++20 | 13 ms | 428 KiB |
#include<bits/stdc++.h>
#include "grader.h"
using namespace std;
vector < int > findSequence (int n)
{
int c0=0,c1=0;
for(int i=1;i<=((n/2)+1);i++)
{
vector<int> cur(i,1);
if(isSubsequence(cur))
{
}
else{
c1=i-1;
c0=n-c1;
break;
}
vector<int> cur1(i,0);
if(isSubsequence(cur1))
{
}
else{
c0=i-1;
c1=n-c0;
break;
}
}
if(c0==0)
{
vector<int> ans(n,1);
return ans;
}
if(c1==0)
{
vector<int> ans(n,0);
return ans;
}
int fp=0,sp=1;
if(c0>c1)swap(c0,c1),swap(fp,sp);
int i=0;
int j=c0-1;
// cout<<"got "<<fp<<' '<<c0<<endl;
// cout<<"got "<<sp<<' '<<c1<<endl;
vector<int> fnl,rfnl;
while(i<=j)
{
int mx=(c1/2)+1;
// try guess ones before i-th fp
bool fx1=0;
int bef=0;
for(int x=1;x<=mx;x++)
{
vector<int> qry;
for(int i1=0;i1<i;i1++)
{
qry.push_back(fp);
}
for(int i1=0;i1<x;i1++)
{
qry.push_back(sp);
}
for(int i1=i;i1<c0;i1++)
{
qry.push_back(fp);
}
if(!isSubsequence(qry))
{
bef=x-1;
fx1=1;
break;
}
}
if(fx1)
{
c1-=bef;
for(int i1=0;i1<bef;i1++)fnl.push_back(sp);
fnl.push_back(fp);
i++;
continue;
}
bef=mx;
for(int x=1;x<=mx;x++)
{
vector<int> qry;
for(int i1=0;i1<=j;i1++)
{
qry.push_back(fp);
}
// after j-th zero
for(int i1=0;i1<x;i1++)
{
qry.push_back(sp);
}
for(int i1=j+1;i1<c0;i1++)
{
qry.push_back(fp);
}
if(!isSubsequence(qry))
{
bef=x-1;
fx1=1;
break;
}
}
c1-=bef;
for(int i1=0;i1<bef;i1++)rfnl.push_back(sp);
rfnl.push_back(fp);
j--;
continue;
// cout<<"Fudge "<<' '<<i<<' '<<j<<endl;;
break;
}
while(c1>0)
{
fnl.push_back(sp);
c1--;
}
while(rfnl.size()>0)
{
fnl.push_back(rfnl.back());
rfnl.pop_back();
}
return fnl;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
