一 、题目
题目描述
给定一个由n个元素构成的序列,你需要将其中的元素按顺序压入一个大小为c的栈并弹出。元素按它们的出栈顺序进行排列,会得到一个新的序列。我们知道,这样的序列会有很多种,请输出所有新序列中第一个元素最小的序列(若第一个元素最小的序列有多个,则令第二个尽可能小;若仍有多个,则令第三个最小,以此类推)。
输入格式
第一行,两个数n,c
第二行n个数,为序列中n个元素的值
输出格式
输出n个数,为满足要求的序列。
输入输出样例
输入 #1 复制
6 4
5 2 3 8 7 4
输出 #1 复制
2 3 4 7 8 5
二、代码
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> q;
int n;
int c;
cin>>n>>c;
int m=0;
int a[100];
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int pos=0;
int len=0;
int pos2=0;
while(q.size()+m<n)
{
len