AcWing 4472. 插松枝
原题链接
中等
作者:
拾心
,
2024-04-15 20:00:26
,
所有人可见
,
阅读 3
天梯赛真的是逆天了 多一个小空格都不让你过
正解代码
#include <iostream>
#include <stack>
#include <queue>
using namespace std;
const int N=1005;
int n,m,k;
stack<int>s;
queue<int>q;
int a[N];
int main()
{
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
q.push(x);
}
while(s.size()||q.size())
{
int last=1000;
int cnt=0;
while(cnt<k)
{
if(s.size()&&s.top()<=last)
{
int t=s.top();
s.pop();
if(last!=1000)
cout<<' '<<t;
else cout<<t;
last=t;
cnt++;
}
else if(q.size())
{
int t=q.front();
if(t<=last)
{
q.pop();
if(last!=1000)
cout<<' '<<t;
else cout<<t;
last=t;
cnt++;
}
else if(s.size()<m)
{
s.push(t);
q.pop();
}
else break;
}
else break;
}
cout<<endl;
}
return 0;
}