教师在哪些网站可以做兼职,衡水网站网站建设,做推广的注册什么公司好,自己可以创建公司网站吗给你一个1-n的排列和一个栈#xff0c;入栈顺序给定 你要在不打乱入栈顺序的情况下#xff0c;对数组进行从大到小排序 当无法完全排序时#xff0c;请输出字典序最大的出栈序列
输入 第一行一个数n 第二行n个数#xff0c;表示入栈的顺序#xff0c;用空格隔开…给你一个1-n的排列和一个栈入栈顺序给定 你要在不打乱入栈顺序的情况下对数组进行从大到小排序 当无法完全排序时请输出字典序最大的出栈序列
输入 第一行一个数n 第二行n个数表示入栈的顺序用空格隔开结尾无空格
输出 输出一行n个数表示答案用空格隔开结尾无空格
Input 5 2 1 5 3 4
Output 5 4 3 1 2
说明2入栈1入栈5入栈5出栈3入栈4入栈4出栈3出栈1出栈2出栈
#include bits/stdc.h
using namespace std;
#define int long long
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
typedef pairint,int PII;
const double PIacos(-1.0);
const int N2e610;
int n;
int a[N];
int maxn[N];
stack int q;
signed main()
{ios;cinn;for (int i1;in;i) cina[i];for (int in;i1;i--) maxn[i]max(maxn[i1],a[i]); //后缀最大值,找到从当前位置开始到最后的最大值for (int i1;in;i){q.push(a[i]);while (q.size()q.top()maxn[i1]) //当栈不空 且 栈顶元素后缀最大值 时{ //说明此时栈顶元素最大将最大值弹出coutq.top() ; //到最后时maxn[n1]为0也就是清空栈q.pop();}}return 0;
}