水题
查看原帖
水题
891606
2023gdgz01楼主2023/9/8 16:16

暴力做法:

#include <cstdio>

int n, a, flag[1000005];

int main()
{
	scanf("%d", &n);
	while (n--)
	{
		scanf("%d", &a);
		for (; flag[a]; ++a);
		flag[a] = 1;
		printf("%d ", a);
	}
	return 0;
}

结果它刚好超时了……

然后我加上快读快写:

#include <cstdio>
#include <cctype>

using namespace std;

int n, a, flag[1000005];

int read()
{
	int num = 0;
	char c = getchar();
	while (!isdigit(c))
	{
		c = getchar();
	}
	while (isdigit(c))
	{
		num = num * 10 + c - '0';
		c = getchar();
	}
	return num;
}

void write(int x)
{
	if (x > 9)
	{
		write(x / 10);
	}
	putchar(x % 10 + '0');
}

int main()
{
	n = read();
	while (--n)
	{
		a = read();
		for (; flag[a]; ++a);
		flag[a] = 1;
		write(a);
		putchar(' ');
	}
	a = read();
	for (; flag[a]; ++a);
	flag[a] = 1;
	write(a);
	putchar(' ');
	return 0;
}

就直接AC了。

申请加强数据QwQ。

2023/9/8 16:16
加载中...