#include <stdio.h>
#include <queue>
#include <stack>
using namespace std;
vector<int>QT;
priority_queue<int,vector<int>,greater<int> >Q;
int main()
{
int n,m;
scanf("%d%d",&n,&m);
while (n--)
{
int x;
scanf("%d",&x);
Q.push(x);
}
while (QT.empty()==false)
{
QT.pop_back();
}
while (m--)
{
int x;
scanf("%d",&x);
while (x>=Q.top()&&Q.empty()==false)
{
if (x!=Q.top())
{
QT.push_back(Q.top());
}
else
printf("%d ",x);
Q.pop();
}
while (QT.empty()==false)
{
Q.push(QT.front());
QT.pop_back();
}
}
putchar('\n');
return 0;
}
本文介绍了一个利用 C++ 中的队列(queue)和优先队列(priority_queue)来处理一系列数值的操作方法。主要流程包括从标准输入读取整数并存入最小堆,然后根据后续指令进行比较与弹出操作,并可能将弹出的元素重新存入一个辅助队列。最终实现了特定条件下的数值处理逻辑。
1466





