#include<bits/stdc++.h>
using namespace std;
queue<int>t,z;int x;
void print()
{
while(!z.empty())
{
x=z.front();cout<<x;
if(z.size()!=1)
cout<<' ';
z.pop();
}
cout<<endl;
}
int main()
{
int n,m,k;
cin>>n>>m>>k;
stack<int>h;
for(int i=0;i<n;i++)
{
cin>>x;
t.push(x);
}
while(!t.empty()||!h.empty()||!z.empty())
{
if(z.empty())
{
if(!h.empty())
{
x=h.top();
h.pop();
z.push(x);
}
else if(!t.empty())
{
x=t.front();
t.pop();
z.push(x);
}
}
else
{
int y=z.back();
if(!h.empty()&&h.top()<=y)
{
x=h.top();
h.pop();
z.push(x);
}
else if(!t.empty())
{
x=t.front();
if(x<=y)
{
t.pop();
z.push(x);
}
else
{
if(h.size()==m)
print();
else
{
t.pop();
h.push(x);
}
}
}
else
print();
}
if(z.size()==k)
print();
}
}
标签:插松枝,int,top,pop,L2,041,push,empty
From: https://www.cnblogs.com/jinshuli/p/18566307