Submission #421790

#TimeUsernameProblemLanguageResultExecution timeMemory
421790JvThunderSequence (BOI14_sequence)C++14
34 / 100
1084 ms884 KiB
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define fir first
#define sec second
typedef long long ll;

using namespace std;

int n;
int arr[100005] = {0};

bool check(int x,int d)
{
	while(x>0)
	{
		if(x%10==d) return true;
		x/=10;
	}
	return false;
}

bool tryposs(int curr)
{
	for(int i=0;i<n;i++)
	{
		if(check(curr+i,arr[i])==false) return false;
	}
	return true;
}

void dosub3()
{
	string ans = "";
	int len = 0;
	
	if(1<=arr[0] && arr[0]<=8)
	{
		n--;
		while(n>0)
		{
			n/=10;
			len++;
		}
		char c = arr[0]+'0';
		ans += c;
		for(int i=1;i<=len;i++) ans += '0';
	}
	if(arr[0]==0)
	{
		ll pow = 1;
		while(true)
		{
			if(n>pow)
			{
				n -= pow;
				pow *= 10;
				len++;
			}
			else break;
		}
		ans += "10";
		for(int i=1;i<=len;i++) ans += '0';
	}
	if(arr[0]==9)
	{
		ll pow = 1;
		while(true)
		{
			if(n>pow)
			{
				n -= pow;
				pow *= 10;
				len++;
			}
			else break;
		}

		char c = '8';
		for(int i=1;i<=len;i++) ans += c;
		ans += '9';
	}
	cout << ans << endl;
	return;
}

void solve()
{
    cin >> n;
	for(int i=0;i<n;i++) cin >> arr[i];

	bool sub3 = true;
	for(int i=0;i<n;i++)
	{
		if(arr[i]!=arr[0]) sub3 = false;
	}

	if(sub3)
	{
		dosub3();
		return;
	}

	int i = 1;
	while(true)
	{
		if(tryposs(i))
		{
			cout << i << endl;
			return;
		}
		i++;
	}
	return;
}

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int tc=1;
	//cin>>tc;
	for(int i=1;i<=tc;i++) solve();
 	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...