Submission #1313083

#TimeUsernameProblemLanguageResultExecution timeMemory
1313083neonglitchHidden Sequence (info1cup18_hidden)C++20
59 / 100
13 ms428 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)

grader.cpp: In function 'int main()':
grader.cpp:28:26: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   28 |     fprintf (fifo_out, "%d\n", ans.size ());
      |                         ~^     ~~~~~~~~~~~
      |                          |              |
      |                          int            std::vector<int>::size_type {aka long unsigned int}
      |                         %ld
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...