开始: 2026-10-07 00:00:00

【集训05】CSP-J模拟赛1007

结束: 2026-10-08 00:00:00
当前  2026-11-04 11:35:08  类型: IOI  状态: 已经结束 

P4. 排队不快度queue
描述

机场安检通道前排着 n 位旅客。从队尾到队头依次编号为 1, 2, \dots, n:第 1 位旅客站在队尾,第 n 位旅客站在队头最靠近安检口。第 i 位旅客的年龄是 a_i(年龄可能相同)。

如果某位旅客前面(编号比他大、离安检口更近)站着**年龄严格更小**的人,他就会感到不快;而且这个"更年轻的人"离他越远,他的不快程度越高。

定义第 i 位旅客的**不快度**为:在他与"他前方所有比他年轻的旅客中离他最远的那一位"之间,隔着多少位其他旅客。也就是说,若存在 j > i 使 a_j < a_i,设其中最大的 j,则不快度为 j - i - 1;若前方没有严格更年轻的人,不快度为 -1。

请依次输出每位旅客的不快度。


输入

第一行一个整数 n。

第二行 n 个整数 a_1, a_2, \dots, a_n。


输出

一行 n 个整数,第 i 个表示第 i 位旅客的不快度。整数之间用空格隔开。


样例

输入

6
10 8 5 3 50 45

输出

2 1 0 -1 0 -1 

输入

7
10 4 6 3 2 8 15

输出

4 2 1 0 -1 -1 -1 

输入

5
10 3 1 10 11

输出

1 0 -1 -1 -1 
提示

样例 1:第 1 位旅客(10 岁)前方比他年轻的最远的人是第 4 位(3 岁),中间隔着第 2,3 两位旅客,不快度 4-1-1=2;第 4 位(3 岁)前方没有人比他更年轻,不快度 -1;第 5 位(50 岁)前方最远的年轻人是第 6 位(45 岁),中间没人,不快度 0。


对于全部数据,保证 2 \le n \le 10^5,1 \le a_i \le 10^9。注意年龄可以重复,但只有**严格**更年轻才算数。

| 20% | 1~5 | 20 | n \le 50 | 

| 60% | 6~15 | 40(累计 60) | n \le 3000 | 

| 100% | 16~25 | 40(累计 100) | n \le 10^5,a_i \le 10^9 | 


提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交