用这题练习队列和栈

#include<cstdio>
#include<queue>
#include<stack>
using namespace std;
queue <int>A;
priority_queue <int>T;
stack <int>tt,M;
int n,m;
int main(){
scanf("%d%d",&n,&m);
for(int i=0,t;i<n;i++)
scanf("%d",&t),A.push(t);
for(int i=0,t;i<m;i++)
scanf("%d",&t),T.push(-t);
while(!T.empty())
tt.push(-T.top()),T.pop();
while(!A.empty())
{
while(!tt.empty()&&A.front()<=tt.top())
M.push(tt.top()),tt.pop();
if(!tt.empty()&&A.front()>tt.top()&&tt.top())tt.pop();
A.pop();
while(!M.empty())
tt.push(M.top()),M.pop();
}
printf("%d",tt.size());
//system("PAUSE");
return 0;
}

0 条评论

目前还没有评论...

信息

ID
1291
难度
6
分类
贪心 点击显示
标签
(无)
递交数
9723
已通过
2330
通过率
24%
被复制
16
上传者