牛客练习赛 栈和排序
题目描述
给你一个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;
}
牛客练习赛 栈和排序相关推荐
- 牛客练习赛73 D 离别(线段树+右端点排序离线查询)
牛客练习赛73 D 离别 思路: 对于每一个固定的右端点i,我们都找到一个区间(l,r)使得区间中的点为左端点时 里面最大的的种数为k. 这个可以用队列或者vector来维护. 然后我们对于q个查询, ...
- 解题报告(一)C、(牛客练习赛41 F)简单数学题(数论 + FWT)(3.5)
繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量题解和代码,题目难度不一定按照题号排序,我会在每道题后面加上题目难度指数(1∼51 \sim 51∼5),以模板题难度 11 ...
- 2021牛客练习赛90
2021牛客练习赛90 B.寒冬信使 C.盾与战锤 B.寒冬信使 题目链接:https://ac.nowcoder.com/acm/contest/11180/B code: #include< ...
- 牛客练习赛58 C.矩阵消除游戏
牛客练习赛58 C.矩阵消除游戏 题目链接 题目描述 牛妹在玩一个名为矩阵消除的游戏,矩阵的大小是n行m列,第i行第j列的单元格的权值为ai,ja_{i,j}ai,j ,牛妹可以进行k个回合的游戏, ...
- 牛客练习赛81 E. 小 Q 与函数求和 1( “简单莫比乌斯反演” ,欧拉函数性质)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 牛客练习赛81 E. 小 Q 与函数求和 1( "简单莫比乌斯反演" ) Prob ...
- 牛客练习赛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 ...
- 牛客练习赛34 - C little w and Segment Coverage(思维、树状数组)
title: 牛客练习赛34 - C little w and Segment Coverage(思维.树状数组) date: 2018-12-15 16:36:55 tags: [树状数组,思维] ...
- 牛客练习赛52 | C | [烹饪] (DP,裴蜀定理,gcd)
牛客练习赛52 C 烹饪 链接:https://ac.nowcoder.com/acm/contest/1084/C来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 327 ...
- 牛客练习赛75 D 减数游戏(队列优化(需要取模的)堆)
牛客练习赛75 D 减数游戏 思路:写一下式子可以发每次选择最小的两个数进行操作,最后得到的答案会是最大的,那我们可以将它放进一个最小堆中来维护,但是里面的数是需要取模的,当它取模的时候,将会变小.那 ...
最新文章
- java中velocity定义宏标签_velocity自定义标签和指令(转:zwj)
- 发票统计者 V1.0
- ASP.NET生命周期详解(转)
- 问题解决: 解释器错误: 没有那个文件或目录
- 电子测量与仪器第四版pdf_固定资产管理系统_资产分类名称(电子和通信测量分析仪器篇)...
- EPG组合 (Exporter Prometheus Grafana) 监控MySQL
- Android之Bitmap的内存优化方案总结
- NVelocity标签设置缓存的解决方案
- 扫地机器人什么牌子好?专业人士推荐这五款高端产品
- Linux故障解决(4)——新安装的CentOS 系统无法上网解决方法 (未知的名称或服务)
- 【字符串】去掉字符串两端的空格trimSpace
- 老大,我想获取MySQL插入数据的自增ID,该怎么弄?
- [luogu3369]普通平衡树(替罪羊树模板)
- 毕业设计:基于SSM框架的学生实习管理系统
- java学生管理系统报告_java学生管理系统总结报告.doc
- Springboot 基础6 - Redis实战
- 智慧城市,定位“需求”
- P1004 方格取数
- 四川理工计算机专业好不好,急!!!!四川理工 、 宜宾学院 、 内江师范学院 哪个学校计算机专业好点?...
- 交换机与路由器技术-05-路由器工作原理