hack
查看原帖
hack
113181
滑蒻稽楼主2021/3/24 13:25

AC记录

代码:

#include <bits/stdc++.h>

using namespace std;
const int N=1e6+5;
int n;
int a[N],b[N],t[10005];

inline int read()
{
	int s=1,x=0;char c=getchar();
	while(c>'9'||c<'0'){if(c=='-')s=0;c=getchar();}
	while(c>='0'&&c<='9'){x=x*10+c-48;c=getchar();}
	return s?x:-x; 
} 

int main()
{
//	freopen("game.in","r",stdin);
//	freopen("game.out","w",stdout);
	
	n=read();
	int minn=min(n,10000);
	for(int i=1;i<=n;i++)
	{
		a[i]=read(),b[i]=read();
		if(a[i]>b[i]) swap(a[i],b[i]);
		if(a[i]<=minn && b[i]>minn) t[a[i]]++;
		else if(a[i]>minn && b[i]>minn) minn--;
		else if(a[i]==b[i]) t[a[i]]++;
	}
	for(int i=1;i<=n;i++)
	{
		if(t[a[i]]==0 || b[i]>minn || t[b[i]]) t[a[i]]++;
		else t[b[i]]++;
	}
//	cout<<minn<<endl;
	for(int i=1;i<=minn;i++)
	{
		if(!t[i])
		{
			printf("%d\n",i-1);
			return 0;
		}
	}
	printf("%d\n",minn);
	
	return 0;
} 

hack数据:

4
1 4
1 2
2 3
3 5

正解应该输出4,但上面的程序输出3

2021/3/24 13:25
加载中...