清北暑假模拟day2 国

时间:2022-08-23 05:54:14

【题目描述】
在世界的东边,有三瓶雪碧。
——laekov
黎大爷为了虐 zhx,给 zhx 出了这样一道题。黎大爷搞了一个数据结构,但
是他没有告诉 zhx 这到底是什么数据结构,我们只知道这是一个数据结构。为了
让 zhx 知道这是什么数据结构,黎大爷制造了很多次的输入和输出操作。每次加
入操作,黎大爷会告诉你他向这个数据结构加入了一个数并告诉你这是多少;每
次取出操作,黎大爷会从数据结构之中取出一个数并告诉这是多少。黎大爷希望
zhx 根据这些操作来判断这是什么数据结构,但是 zhx 觉得这题太难了所以跑路
了,于是黎大爷把这道题扔给了你。
【输入格式】
第一行一个整数

【数据范围与规定】
对于100%的数据, 1 ≤ n <= 10^3

/*
水题,注意判断是否为空
*/
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue> using namespace std; stack<int> s; queue<int> q; priority_queue<int> h; int n; int main()
{
freopen("man.in","r",stdin);
freopen("man.out","w",stdout); scanf("%d",&n);
bool able1=true,able2=true,able3=true;
int z=;
for (;n--;)
{
int o,v;
scanf("%d%d",&o,&v);
if (o&)
{
s.push(v);
q.push(v);
h.push(v);
z++;
}
else
{
if (!z)
{
able1=able2=able3=false;
break;
}
z--;
if (s.top()!=v) able1=false;
if (q.front()!=v) able2=false;
if (h.top()!=v) able3=false;
s.pop();
q.pop();
h.pop();
}
}
printf("%s\n",able1 ? "YES" : "NO");
printf("%s\n",able2 ? "YES" : "NO");
printf("%s\n",able3 ? "YES" : "NO"); return ;
}