| 比赛 | 
    近期练习题回顾 | 
    评测结果 | 
    AAAAAAAAAAAA | 
    | 题目名称 | 
    向右看齐 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    梦那边的美好ET | 
    运行时间 | 
    0.105 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    28.92 MiB  | 
    | 提交时间 | 
    2018-10-18 11:51:25 | 
显示代码纯文本
#include<iostream>  
#include<cstdio>
#include<cmath>
#include<cstring>  
#include<algorithm>  
using namespace std; 
int n,a[1000001],d[1000001][2],ld=0,ans[1000001];
int main(){ 
    freopen("lookup.in","r",stdin);        
    freopen("lookup.out","w",stdout);      
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	for(int i=n;i>=1;i--){
		while(d[ld][0]<=a[i]&&ld!=0)ld--;
		ans[i]=d[ld][1];
		d[++ld][0]=a[i];d[ld][1]=i;
	}
	for(int i=1;i<=n;i++)printf("%d\n",ans[i]);
    return 0;  
}