5475: 游戏之消除
描述
zzx和city一直喜欢一起玩游戏,某一天zzx做了一个丧心病狂的消消乐游戏,游戏是这样的,zzx随机生成一个序列让city从前往后寻找5个数ai(1<=i<=5)如果5个数ai满足a1<a2<a3<a4<a5则可以消除这5个数,然而目前出现了一种情况,就是zzx和city不清楚这个序列还有没有可以消除的方案,所以想请你帮忙判断一下。
输入
输入数据有多组,输入到文件结束为止。
第一行输入一个N(106>=N>=5)。
第二行输入N个zzx随机生成的序列(在int32范围内的数字)。
输出
如果有可以消除的方案,输出YES,否则输出NO
样例输入
6
1 2 3 4 5 6
6
5 4 3 2 1 0
样例输出
YES
NO
思路:单纯的模拟,只要找出序列中存在5个数上升即可
#include <bits/stdc++.h> using namespace std; const int inf=0x3f3f3f3f; int t; int main() { while(~scanf("%d",&t)) { int x,a[10],flag=0,s=0; a[0]=-inf; for(int i=1;i<=t;i++) { scanf("%d",&x); if(flag)continue; if(x>a[s])a[++s]=x; else { int z=(lower_bound(a+1,a+s,x)-a); a[z]=x; } if(s==5)flag=1; } printf("%s\n",(flag?"YES":"NO")); } }
浙公网安备 33010602011771号