纸飞机
题号:NC54832
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

直线上有n座山峰,第i座的高度为hi。从某座山峰上放飞一架纸飞机,它可以从左往右依次经过一系列高度严格递减的山头。
假设五座山峰的高度依次是3,4,3,2,1。从第一座山峰上放飞的纸飞机可以依次经过第一、四、五座山峰,但不能经过第二、三座山峰。
对于每座山峰,求出要经过除这座山峰外的每座山峰,至少需要放飞多少纸飞机。(每架纸飞机的起点可以不同)

输入描述:

第一行包括一个正整数n。

第二行包括n个正整数,第i个数表示第i座山峰的高度hi

输出描述:

输出一行,包括n个用空格隔开的正整数,第i个数表示除去第i座山峰的答案。
示例1

输入

复制
5
2 4 3 1 5

输出

复制
2 3 3 3 2

备注:

1≤n≤106

1≤hi≤230