清北暑假模拟day2 国
【题目描述】
在世界的东边,有三瓶雪碧。
——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=0; for (;n--;) { int o,v; scanf("%d%d",&o,&v); if (o&1) { 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 0; }