haha

【问题描述】
栈是一种强大的数据结构,它的一种特殊功能是对数组进行排序。例如,借助一个栈,依次将数组1,3,2按顺序入栈或出栈,可对其从大到小排序:1入栈;3入栈;3出栈;2入栈;2出;1出栈。在上面这个例子中,出栈序列是3,2,1,因此实现了对数组的排序。遗憾的是,有些时候,仅仅借助一个栈,不能实现对数组的完全排序。例如给定数组2,1,3,借助一个栈,能获得的字典序最大的出栈序列是3,1,2:2入栈;1入栈;3入栈;3出栈;1出栈;2出栈。
请你借助一个栈,对一个给定的数组按照出栈顺序进行从大到小排序。当无法完全排序时,请输出字典序最大的出栈序列。
【输入格式】
输入共2行。
第一行包含一个整数n,表示入栈序列长度。
第二行包含n个整数,表示入栈序列。输入数据保证给定的序列是1到n的全排列,即不会出现重复数字。
【输出格式】
仅一行,共n个整数,表示你计算出的出栈序列。
【样例输入】
3
2 1 3
【样例输出】
3 1 2
【样例解释】
这回山里有座塔。
【数据规模与约定】
对于30%的数据,1<=N<=10^3。
对于60%的数据,1<=N<=10^5。
对于100%的数据,1<=N<=10^6。
【题目分析】
f数组处理出到目前可以输出的最大值,要倒叙处理
#include<iostream>
#include<cstdio>
#include<cstring>
#define ge getchar()
using namespace std;
int a[],f[],s[];
int n,k=;
int read()
{
int x=;char ch=ge;
while(ch<''||ch>'') ch=ge;
while(ch>=''&&ch<='')
{
x=x*+ch-'';ch=ge;
}
return x;
}
int main()
{
freopen("haha.in","r",stdin);
freopen("haha.out","w",stdout);
n=read();
for(int i=;i<n;i++)
a[i]=read();
for(int i=n-;i>=;i--)
f[i]=max(a[i],f[i+]);
s[]=-;
for(int i=;i<n;i++)
{
s[k++]=a[i];
while(k!=&&s[k-]>f[i+])
printf("%d ",s[--k]);
}
fclose(stdin);
fclose(stdout);
return ;
}
haha的更多相关文章
- <input type="hidden" id="haha" name="wang" value="xiaodong" />
jsp中一个隐藏的文本框,文本框里的值是:xiaodong id属性和name属性:就是在JavaScript中或者控制器中根据id或name属性取它的value的值 开发人员所需要,又不想让用户看到 ...
- HaHa's Morning(状压DP)
描述 HaHa is so happy today, he is going to participate the 7th Hunan University Programming Contest. ...
- file -i haha.csv
user@user-desk ~/Downloads/largetrd$ file -i LT_Largetrd.csvLT_Largetrd.csv: text/plain; charset=utf ...
- 让姑姑不再划拳 码农也要有原则 : SOLID via C#
“姑娘,别这样.我们是有原则的.” “一个有原则的程序猿是不会写出 “摧毁地球” 这样的程序的,他们会写一个函数叫 “摧毁行星”而把地球当一个参数传进去.” “对,是时候和那些只会滚键盘的麻瓜不同了, ...
- Python高手之路【二】python基本数据类型
一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值 ...
- 【Win 10 应用开发】启动远程设备上的应用
这个功能必须在“红石-1”(build 14393)以上的系统版中才能使用,运行在一台设备上的应用,可以通过URI来启动另一台设备上的应用.激活远程应用需要以下前提: 系统必须是build 14393 ...
- 浅谈web攻防
CSRF 跨站请求伪造(Cross-Site Request Forgery) -原理- 从上图可以看出,要完成一次CSRF攻击,受害者必须依次完成两个步骤: 1.登录受信任网站A,并在本地生成Coo ...
- 自己实现一个javascript事件模块
nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...
- NSURLSession详解
导语 现在NSURLConnection在开发中会使用的越来越少,iOS9已经将NSURLConnection废弃,现在最低版本一般适配iOS7,所以也可以使用. NSURLConnection相对于 ...
随机推荐
- find 命令使用总结
参考:http://os.51cto.com/art/200908/141119.htm 1.find命令的一般形式 find pathname -options [-print -exec -ok ...
- PHP XDEBUG
PHP调试时,不得不提XDEBUG这个调试利器.学习PHP以来,几乎所有的问题我都利用它来解决. 首先关于如何安装,不在赘述,请自行google之.(需要特别注意的是:PHP5.2 和5.3 ,关于加 ...
- shp图层创建
IField,IFieldEdit,IFields,IFieldsEdit,IGeometryDef,IGeometryDefEdit接口 (2013-05-06 20:40:27) 转载▼ 标签: ...
- [Ubuntu] ubuntu13.04 从php5.4降级到php5.3
ubuntu12.10以后,默认的deb安装库上面的php版本已经是5.4了,公司的项目使用5.4的时候,还是会出现很多问题,所以不得不降级安装5.3 顺便说一句,我原来的环境是nginx + php ...
- ionic入门之AngularJS扩展基本布局
目录: 标题栏 : ion-header-bar 页脚栏 : ion-footer-bar header/footer : 样式及内容 内容区 : ion-content 滚动框 : ion-scro ...
- android 应用架构随笔六(Loading加载页面)
import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import com.heima ...
- resultMap / resultType
===================resultMap:实体类的属性和通过resultMap映射后的property属性一致 <resultMap id="workerSelect& ...
- linux设备驱动归纳总结(四):3.抢占和上下文切换【转】
本文转载自:http://blog.chinaunix.net/uid-25014876-id-65711.html linux设备驱动归纳总结(四):3.抢占和上下文切换 xxxxxxxxxxxxx ...
- 空格和TAB键混用错误:IndentationError: unindent does not match any outer indentation level
转自:http://www.crifan.com/python_syntax_error_indentationerror/comment-page-1/ [已解决]Python脚本运行出现语法错误: ...
- html插入视频
http://www.jb51.net/web/168548.html http://www.w3school.com.cn/html/html_media.asp