Files
2026-04-08 03:57:04 +09:00

37 lines
910 B
Rust

use std::io::{read_to_string, stdin};
fn main() {
let temp = read_to_string(stdin()).unwrap();
let mut iter = temp
.split_ascii_whitespace()
.map(|x| x.parse::<usize>().unwrap());
let n = iter.next().unwrap();
let arr = (0..n).map(|i| (i + 1, iter.next().unwrap()));
let mut stack = vec![];
for e in arr {
if stack.is_empty() {
stack.push(e);
print!("{} ", 0);
} else {
while let Some(top) = stack.last() {
if top.1 >= e.1 {
stack.pop();
} else {
break;
}
}
if stack.is_empty() {
stack.push(e);
print!("{} ", 0);
} else {
print!("{} ", stack.last().unwrap().0);
stack.push(e);
}
}
}
}