fun main() {
val br = System.`in`.bufferedReader()
val bw = System.out.bufferedWriter()
val n = br.readLine().toInt()
val numbers = mutableListOf<Pair<Int, Int>>()
for (i in 0 until n) {
val number = br.readLine().toInt()
numbers.add(Pair(number, i))
}
val sorted = numbers.sortedBy { it.first }
var maxMoved = 0
sorted.forEachIndexed { index, number ->
if (maxMoved < number.second - index) {
maxMoved = number.second - index
}
}
// 정렬된 후에도 checked == false 임을 확인하기 위한 for 문을 돌기 때문에 +1을 해줍니다.
bw.write("${maxMoved + 1}")
br.close()
bw.close()
}
O(N * logN)