萌新求助:hack或证明正确性
查看原帖
萌新求助:hack或证明正确性
438461
liu_chen_hao楼主2022/9/17 17:48

RT,写了一个贪心过了所有数据,但听说这题数据水,作为萌新我无法确定正确性(ORZ),自己也没hack成,请各位大佬帮帮忙。 思路:维护两个序列(就是两个数),分别表示两个序列的最后一个数(最大值),优先加入第一个队列,若加不进去就加到第二个队列,否则No。 代码:

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,a[N],s,t;
int main()
{
	while(scanf("%d", &n)!=EOF)
	{
		for(int i=1; i<=n; i++) scanf("%d", &a[i]);
		bool fg=1;
		s=t=-1;
		for(int i=1; i<=n; i++)
		{
			if(a[i]>s) s=a[i];
			else if(a[i]>t) t=a[i];
			else
			{
				fg=0;
				break;
			}
		}
		if(fg) puts("Yes!");
		else puts("No!"); 
	}
	return 0;
}
2022/9/17 17:48
加载中...