#5579. 盗墓 6

盗墓 6

题目背景

小吴、小张两个摸金校尉和你偶然的机会发现了一座未被开发的古墓。进入古墓后,肉眼可见的辉煌装饰、雕刻、壁画,让你们来了兴致,一拍即合决定深入调查,挖掘古墓深处的财宝。

走到走廊的尽头,你们发现了一个巨大的石门,无论如何用力都无法打开,但石门上似乎有一些机关,破解机关说不定可以打开石门!

题目描述

机关上有一行 nn 个数字,第 ii 个数字为 aia_i,同时每个数字都可以通过精妙的机关连接到其后面的数字,即 aia_i 可以连接到 ai+1ai+2...ana_{i+1}、a_{i+2}、...、a_{n}

只有当 aia_i 连接到其后面第一个比 aia_i 大的数字时,连线才会亮起。

你们猜测,只有把每个数字都连接到合适的数字时,才能破解机关。

你们决定实践起来,但数字实在太多了,连接起来有点麻烦,于是决定由你来编写一个程序,找出每个数字后面第一个比 aia_i 大的数字,并输出其aj(i<jn)a_j(i < j \leq n) ;特殊的,如果 aia_i 后面没有比它大的数字,则输出 -1

输入格式

第一行输入一个整数 n(1n106)n(1 \leq n \leq 10^6),表示数字的个数。

第二行输入 nn 个整数 ai(1ai109,1in)a_i(1 \leq a_i \leq 10^9, 1 \leq i \leq n),用空格隔开。

输出格式

输出 nn 个整数,第 ii 个数字表示 aia_i 后面第一个比 aia_i 大的数字 aja_j,如果不存在这样的 aja_j,则输出 -1,每个输出的数字间用空格隔开。

输入输出样例 #1

输入 #1

4
2 1 4 7

输出 #1

4 4 7 -1

说明/提示

数据约束:

对于 20%20\% 的数据 ai<ai+1(1i<n)a_i < a_{i+1}(1 \leq i < n)

对于 60%60\% 的数据 1n1041 \leq n \leq 10^4

对于 100%100\% 的数据 1n101 \leq n \leq 10