답안 #105653

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
105653 2019-04-13T19:11:32 Z luciocf 수열 (BOI14_sequence) C++14
9 / 100
8 ms 384 KB
	#include <bits/stdc++.h>

	using namespace std;

	const int maxn = 1e3+10;

	int n;
	int a[maxn];

	int brute(void)
	{
		for (int j = 1; j <= 1000; j++)
		{
			int v = j;	
			bool deu = 1;

			for (int i = 0; i < n; i++)
			{
				int aux = v;
				bool ok = 0;

				while (aux > 0)
				{
					if (aux%10 == a[i]) ok = 1;
					aux /= 10;
				}

				if (!ok) deu = 0;

				v++;
			}

			if (deu) return j;
		}
		return -1;
	}

	void solve_9(void)
	{
		if (n == 1)
		{
			printf("9\n");
			return;
		}

		for (int i = 1; i <= n; i++)
		{
			int x = 1;
			for (int j = 1; j <= i; j++)
				x *= 10;

			x--; x /= 9;

			if (x >= n)
			{
				for (int j = 1; j < i; j++)
					printf("8");
				printf("9\n");
				return;
			}
		}
	}

	int main(void)
	{
		scanf("%d", &n);

		for (int i = 0; i < n; i++)
			scanf("%d", &a[i]);

		if (n <= 1000)
		{
			printf("%d\n", brute());
			return 0;
		}

		if (a[0] == 0)
		{
			for (long long i = 1; i <= 100000000000ll; i++);
			return 0;
		}

		if (a[0] == 9)
		{
			solve_9();
			return 0;
		}

		int x = 1;
		for (int i = 0; i <= 20; i++)
		{
			if (a[i] == 0)
			{
				int val = x*10-1;
				val /= 9;

				if (val >= n)
				{
					printf("10");
					for (int j = 1; j <= i; j++) printf("0\n");
					printf("\n");

					return 0;
				}
			}
			else if (x >= n)
			{
				printf("%d", a[0]);
				for (int j = 1; j <= i; j++) printf("0");
				printf("\n");

				return 0;
			}

			x *= 10;
		}
	}

Compilation message

sequence.cpp: In function 'int main()':
sequence.cpp:66:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &n);
   ~~~~~^~~~~~~~~~
sequence.cpp:69:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d", &a[i]);
    ~~~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 3 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 3 ms 256 KB Output is correct
5 Correct 2 ms 256 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Correct 3 ms 384 KB Output is correct
8 Correct 8 ms 384 KB Output is correct
9 Correct 2 ms 256 KB Output is correct
10 Correct 3 ms 384 KB Output is correct
11 Correct 2 ms 256 KB Output is correct
12 Correct 2 ms 256 KB Output is correct
13 Correct 3 ms 256 KB Output is correct
14 Correct 8 ms 256 KB Output is correct
15 Correct 8 ms 256 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 5 ms 256 KB Output is correct
3 Correct 3 ms 256 KB Output is correct
4 Correct 2 ms 256 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 3 ms 384 KB Output is correct
7 Incorrect 8 ms 384 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB Output is correct
2 Incorrect 2 ms 256 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 3 ms 384 KB Output is correct
5 Incorrect 2 ms 256 KB Output isn't correct
6 Halted 0 ms 0 KB -