题目描述

给你一个1->n的排列和一个栈,入栈顺序给定
你要在不打乱入栈顺序的情况下,对数组进行从大到小排序
当无法完全排序时,请输出字典序最大的出栈序列

输入描述:

第一行一个数n
第二行n个数,表示入栈的顺序,用空格隔开,结尾无空格

输出描述:

输出一行n个数表示答案,用空格隔开,结尾无空格
示例1

输入

5
2 1 5 3 4

输出

5 4 3 1 2

说明

2入栈;1入栈;5入栈;5出栈;3入栈;4入栈;4出栈;3出栈;1出栈;2出栈

备注:

对于100%的数据,有1<=n<=1000000,保证给的是一个排列

思路:将n个数都放入数列中,如果在数列中第i个数为[i,n]区间内的最大值就直接输出,反之将它放入数组

#include<stdio.h>
#include<math.h>
#include<string.h>
int a[1000010],b[1000010],c[1000010];
void fff(n)
{c[n-1]=a[n-1];for(int i=n-2;i>=0;i--)//求第【i,n】区间的最大值c[i]=max(c[i+1],a[i]);
}
int max(int a,int b)
{if(a>b)return a;else return b;
}
int main()
{int n,t=0,k=0;scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&a[i]);fff(n);for(int i=0;i<n;i++){if(c[i]==a[i]){       //是最大值就直接输出if(k==0)printf("%d",c[i]);else printf(" %d",c[i]);k++;}else b[t++]=a[i];//否则存入另一个数组}for(int i=t-1;i>=0;i--)  //倒序输出{if(k==0)printf("%d",b[i]);else printf(" %d",b[i]);k++;}printf("\n");return 0;
}

牛客练习赛 栈和排序相关推荐

  1. 牛客练习赛73 D 离别(线段树+右端点排序离线查询)

    牛客练习赛73 D 离别 思路: 对于每一个固定的右端点i,我们都找到一个区间(l,r)使得区间中的点为左端点时 里面最大的的种数为k. 这个可以用队列或者vector来维护. 然后我们对于q个查询, ...

  2. 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)

    繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...

  3. 2021牛客练习赛90

    2021牛客练习赛90 B.寒冬信使 C.盾与战锤 B.寒冬信使 题目链接:https://ac.nowcoder.com/acm/contest/11180/B code: #include< ...

  4. 牛客练习赛58 C.矩阵消除游戏

    牛客练习赛58 C.矩阵消除游戏 题目链接 题目描述 牛妹在玩一个名为矩阵消除的游戏,矩阵的大小是n行m列,第i行第j列的单元格的权值为ai,ja_{i,j}ai,j​ ,牛妹可以进行k个回合的游戏, ...

  5. 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...

  6. 牛客练习赛34 E little w and Digital Root(数位dp)

    title: 牛客练习赛34 E little w and Digital Root(数位dp) date: 2018-12-17 22:38:37 tags: 数位dp categories:ACM ...

  7. 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)

    title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...

  8. 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)

    牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...

  9. 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)

    牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...

最新文章

  1. java中velocity定义宏标签_velocity自定义标签和指令(转:zwj)
  2. 发票统计者 V1.0
  3. ASP.NET生命周期详解(转)
  4. 问题解决: 解释器错误: 没有那个文件或目录
  5. 电子测量与仪器第四版pdf_固定资产管理系统_资产分类名称(电子和通信测量分析仪器篇)...
  6. EPG组合 (Exporter Prometheus Grafana) 监控MySQL
  7. Android之Bitmap的内存优化方案总结
  8. NVelocity标签设置缓存的解决方案
  9. 扫地机器人什么牌子好?专业人士推荐这五款高端产品
  10. Linux故障解决(4)——新安装的CentOS 系统无法上网解决方法 (未知的名称或服务)
  11. 【字符串】去掉字符串两端的空格trimSpace
  12. 老大,我想获取MySQL插入数据的自增ID,该怎么弄?
  13. [luogu3369]普通平衡树(替罪羊树模板)
  14. 毕业设计:基于SSM框架的学生实习管理系统
  15. java学生管理系统报告_java学生管理系统总结报告.doc
  16. Springboot 基础6 - Redis实战
  17. 智慧城市,定位“需求”
  18. P1004 方格取数
  19. 四川理工计算机专业好不好,急!!!!四川理工 、 宜宾学院 、 内江师范学院 哪个学校计算机专业好点?...
  20. 交换机与路由器技术-05-路由器工作原理

热门文章

  1. 2016-03-12 Leanning Plan
  2. MSSQL自增字段默认值
  3. java swing container_Java Swing GUI学习(一)
  4. 统计学习方法9—EM算法
  5. GitHub的SSH免密连接
  6. JavaScript function函数种类
  7. 软件测试实验1:JUnit、Hamcrest、Eclemma
  8. AWS向中国有限预览客户推出多级别AWS支持服务
  9. Opengl_9_复合变换
  10. 程序出错后 程序员给测试人员的20条高频回复