#P1060. 【挑战题】NOIP 2018 普及组初赛试题(23题)  

【挑战题】NOIP 2018 普及组初赛试题(23题)  

题目描述

程序需要输入一个由1到n的数字构成的序列,并且1到n每个数字都一定会出现一次。然后程序需要在O(n)的复杂度下求出每个元素右边第一个比它大的数的下标,如果不存在,就要输出n+1。如果输入序列是1 5 4 2 3,那么答案应该是2 6 6 5 6。

输入格式

第一行一个整数n。 \\第二行n个整数,分别表示数组中的n个数

输出格式

一行nn个整数,代表每个元素右边第一个比它大的数的下标,如果不存在,就输出n+1n+1

样例 #1

样例输入 #1

5
1 5 4 2 3

样例输出 #1

2 6 6 5 6

提示

可以试着用双向链表解决!

对于80%的数据,有0<n<1030\lt n\lt 10^3

对于100%的数据,有0<n<1050\lt n\lt 10^5