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"));
      }
}
View Code

 

posted on 2019-08-02 20:05  还是力量不够  阅读(230)  评论(0)    收藏  举报

导航