JZ初中OJ 2295. [noip普及组2]栈
input: stack.in output: stack.out 时间限制: 1000 ms 空间限制: 524288 KB 具体限制 题目描述 输入 输出 样例输入 5 1 4 3 5 2 样例输出 1 2 4 3 5 数据范围限制 提示 依次使用操作 1、2、1、1、1、1、2、3、3、2 可以得到样例输出 1 2 4 3 5 。 1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 freopen("stack.in","r",stdin); 6 freopen("stack.out","w",stdout); 7 int n,a[110000],rm[110000],q[110000],l=1,r=0; 8 scanf("%d",&n); 9 rm[n+1]=100010; 10 for(int i=1;i<=n;++i) 11 scanf("%d",&a[i]); 12 for(int i=n;i;--i) 13 rm[i]=min(rm[i+1],a[i]); 14 for(int i=1;i<=n;++i){ 15 if(l<=r){ 16 if(a[q[l]]>rm[i]&&a[q[r]]>rm[i]){ 17 q[++r]=i; 18 continue; 19 } 20 while