Решение
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.util.Stack
fun main() {
val reader = BufferedReader(InputStreamReader(System.`in`))
val writer = BufferedWriter(OutputStreamWriter(System.out))
val n = reader.readLine().toInt() // Количество вагонов
val cars = reader.readLine().trim().split(" ").map(String::toInt) // Порядок вагонов
val stack = Stack<Int>()
var current = 1
for (car in cars) {
stack.push(car) // Помещаем вагон в тупик
// Пока верхний вагон соответствует ожидаемому номеру, убираем его
while (stack.isNotEmpty() && stack.peek() == current) {
stack.pop()
current++
}
}
// Если все вагоны упорядочены, выводим YES, иначе NO
writer.write(if (stack.isEmpty()) "YES" else "NO")
reader.close()
writer.close()
}