题目描述

现在告诉你有一个队列,一开始它是空的,首先你会把 1,2,3,…m 这 m 个数依次push入这个队列。

接着,会进行 n 次操作,每次操作你需要进行如下操作:

首先,获得队首元素,输出队首元素,并且将这个队首元素pop出队列;然后你可以在如下两个选择中任选一个操作:

  1. 将这个队首元素永远的抛弃;
  2. 将这个队首元素重新加入到队尾中。

现在告诉你 n 和 n 次操作所输出的队首元素,需要你判断是否存在一个数 m 使得这个操作是可行的。

输入格式

第一行一个正整数 n ,用于表示操作的次数。(1≤n≤100000)

第二行 n 个正整数,以空格分隔,用于表示 n 次操作所输出的队首元素。

输出格式

如果存在一个数 m 使得这 n 次操作可行,输出“YES”;否则,输出“NO”。

样例输入1

5
1 2 3 1 2

样例输出1

YES

样例输入2

5
1 2 3 2 1

样例输出2

NO

样例解释

对于样例 1,当 m3 时,我们执行如下操作就可以得到目标序列 [1,2,3,2,1]

初始时,que = [1,2,3]

step.1: 输出 1 = que.front(), que.pop(), que.push(1), 此时 que = [2,3,1]

step.2: 输出 2 = que.front(), que.pop(), que.push(2),此时 que = [3,1,2]

step.3: 输出 3 = que.front(), que.pop(), que.push(3), 此时 que = [1,2,3]

step.4: 输出 1 = que.front(), que.pop(), 此时 que = [2,3]

step.5: 输出 2 = que.fornt(), que.pop(), 此时 que = [3]

那么我们输出的序列就是 [1,2,3,1,2],所以 m3 是存在的。这个序列合法,我们输出“YES”。

对于样例 2,我们没有办法得到m。

因为我们在 1, 2, 3 之后输出了 2,也就是说我一开始抛弃了 1 ,并且 m==3,那么到此我输出 2 是合法的,

但是我在2 之后又输出了 1,但是模拟到这里我们可以明显看出 1 肯定是在之前被抛弃了。所以你个序列不合法,输出“NO”。

P1032 队列的序列的更多相关文章

  1. 【单调队列】bzoj2096 [Poi2010]Pilots

    用两个单调队列维护序列中的最大值和最小值即可. poi~ #include<cstdio> #include<algorithm> using namespace std; i ...

  2. Python 双向队列Deque、单向队列Queue 模块使用详解

    Python 双向队列Deque 模块使用详解 创建双向队列Deque序列 双向队列Deque提供了类似list的操作方法: #!/usr/bin/python3 import collections ...

  3. SAP RFC通信模式

    在网络技术中,数据通信可以大致划分为两种基本模式:同步通信和异步通信. 其本义是:异步通信时,通信双方时钟允许存在一定误差:同步通信时,双方时钟的允许误差较小.在SAP的系统间的通信过程中,也借用术语 ...

  4. ABAP RFC远程调用

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. Python Tutorial 学习(五)--Data Structures

    5. Data Structures 这一章来说说Python的数据结构 5.1. More on Lists 之前的文字里面简单的介绍了一些基本的东西,其中就涉及到了list的一点点的使用.当然,它 ...

  6. glib 文档 代码 索引 编译

    ./configure --prefix=/opt/glib-2.28.8 --enable-staticmakemake install linux下载 WIN32下载 代码索引 文档索引 GLib ...

  7. Python 任务队列 Celery

    一. celery 简介 Celery 是一个专注于实时处理和任务调度的分布式任务队列, 同时提供操作和维护分布式系统所需的工具.. 所谓任务就是消息, 消息中的有效载荷中包含要执行任务需要的全部数据 ...

  8. Dictionary实现先进先出代替Queue

    Queue删除其中一个元素比较麻烦,这是一个重码校验的类,主要处理是用Dictionary代替Queue了.目前使用下来还算稳定.代码贴出来给有缘人参考. /// <summary> // ...

  9. abap 常用TCODE

    ABAP: 通过查询表TSTC或者TSTCT:SAP系统将所有的事务代码都存储在这个表中,包括字开发的Y*和Z* TCODE 事务代码功能描述 CG3Y 下载服务器上文件 CG3Z upload fi ...

随机推荐

  1. Ajax--Ajax基于原生javascript:创建Ajax对象、链接服务器、发送请求、接受响应结果

    Ajax概述 异步:指某段程序执行时不会阻塞其它程序执行,其表现形式为程序的执行顺序不依赖程序本身的书写顺序,相反则为同步. 同步请求: 请求是由浏览器发送 页面会刷新 异步请求: 请求是由浏览器的一 ...

  2. VUE中的style 样式处理的Scope (<style scope>)

    在VUE组件中,为了让样式私有化,不对全局造成污染,可以在style标签上添加scoped属性以表示它的只属于当下的模块. 但是这样的话,就会导致无法修改其他第三方组件样式,或者是内嵌的样式,解决方案 ...

  3. VIM中空格和TAB的替换

    在.vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4  (注:ts是tabstop的缩写,设TAB宽4个空格)set expandtab 对于已保存的文件,可以使用 ...

  4. LeetCode172 Factorial Trailing Zeroes. LeetCode258 Add Digits. LeetCode268 Missing Number

    数学题 172. Factorial Trailing Zeroes Given an integer n, return the number of trailing zeroes in n!. N ...

  5. Date日期类,Canlendar日历类,Math类,Random随机数学类

    Date日期类,SimpleDateFormat日期格式类 Date  表示特定的时间,精确到毫秒 常用方法 getTime() setTime() before() after() compareT ...

  6. 使用哈工大LTP进行文本命名实体识别并保存到txt

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/broccoli2/article/det ...

  7. jsp项目中整个项目没有问题但是servlet报错

    项目没问题但是serverlet报错 项目右键 buildPath-->configure build path -->Myeclipse Library-->J2EE 1.3 Li ...

  8. Linus 本尊也来了!为什么 KubeCon 越来越火了?

    2015年11月,第一届 KubeCon 在美国旧金山开始的时候,还只是个200人的小会议,2019年的7月,KubeCon 第二次在中国举办,就有 3500 多位云原生和开源领域工程师齐聚一堂. 连 ...

  9. EL表达式简单总结

    EL表达式 ## EL表达式的取值范围 JSP的四个作用域: pagecontext(生命周期用户离开或者跳转页面,作用域范围这个页面) request(生命周期用户离开页面,作用于这个页面) ses ...

  10. LeetCode97 Interleaving String

    Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. (Hard) For example,Giv ...