import java.util.*;
public class Main {
public static void main
(String[] args
) { Scanner scanner
= new Scanner
(System.
in);
// 读取火车数量
int n = scanner.nextInt();
// 读取火车出站顺序
int[] departureOrder = new int[n];
for (int i = 0; i < n; i++) {
departureOrder[i] = scanner.nextInt();
}
// 调用方法来获取最大车站内火车数量
int result = findMaxTrainsAtStation(n, departureOrder);
// 输出结果
}
public static int findMaxTrainsAtStation(int n, int[] departureOrder) {
// 使用栈来模拟车站
Stack<Integer> stack = new Stack<>();
int currentTrain = 1; // 当前到达的火车
int maxTrains = 0;
// 遍历每一个出站的火车
for (int i = 0; i < n; i++) {
// 将火车推入栈中,直到栈顶是当前应该出站的火车
while (currentTrain <= n && (stack.isEmpty() || stack.peek() != departureOrder[i])) {
stack.push(currentTrain++);
}
// 检查栈顶的火车是否是当前应该出站的火车
if (!stack.isEmpty() && stack.peek() == departureOrder[i]) {
stack.pop(); // 出站
} else {
// 如果栈顶不是当前应该出站的火车,说明顺序不对,返回 -1
return -1;
}
// 更新车站内最大火车数量
maxTrains
= Math.
max(maxTrains, stack.
size()); }
return maxTrains;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgCiAgICAgICAgLy8g6K+75Y+W54Gr6L2m5pWw6YePCiAgICAgICAgaW50IG4gPSBzY2FubmVyLm5leHRJbnQoKTsKCiAgICAgICAgLy8g6K+75Y+W54Gr6L2m5Ye656uZ6aG65bqPCiAgICAgICAgaW50W10gZGVwYXJ0dXJlT3JkZXIgPSBuZXcgaW50W25dOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIGRlcGFydHVyZU9yZGVyW2ldID0gc2Nhbm5lci5uZXh0SW50KCk7CiAgICAgICAgfQoKICAgICAgICAvLyDosIPnlKjmlrnms5XmnaXojrflj5bmnIDlpKfovabnq5nlhoXngavovabmlbDph48KICAgICAgICBpbnQgcmVzdWx0ID0gZmluZE1heFRyYWluc0F0U3RhdGlvbihuLCBkZXBhcnR1cmVPcmRlcik7CgogICAgICAgIC8vIOi+k+WHuue7k+aenAogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihyZXN1bHQpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgaW50IGZpbmRNYXhUcmFpbnNBdFN0YXRpb24oaW50IG4sIGludFtdIGRlcGFydHVyZU9yZGVyKSB7CiAgICAgICAgLy8g5L2/55So5qCI5p2l5qih5ouf6L2m56uZCiAgICAgICAgU3RhY2s8SW50ZWdlcj4gc3RhY2sgPSBuZXcgU3RhY2s8PigpOwogICAgICAgIGludCBjdXJyZW50VHJhaW4gPSAxOyAgLy8g5b2T5YmN5Yiw6L6+55qE54Gr6L2mCiAgICAgICAgaW50IG1heFRyYWlucyA9IDA7CgogICAgICAgIC8vIOmBjeWOhuavj+S4gOS4quWHuuermeeahOeBq+i9pgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgIC8vIOWwhueBq+i9puaOqOWFpeagiOS4re+8jOebtOWIsOagiOmhtuaYr+W9k+WJjeW6lOivpeWHuuermeeahOeBq+i9pgogICAgICAgICAgICB3aGlsZSAoY3VycmVudFRyYWluIDw9IG4gJiYgKHN0YWNrLmlzRW1wdHkoKSB8fCBzdGFjay5wZWVrKCkgIT0gZGVwYXJ0dXJlT3JkZXJbaV0pKSB7CiAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGN1cnJlbnRUcmFpbisrKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8g5qOA5p+l5qCI6aG255qE54Gr6L2m5piv5ZCm5piv5b2T5YmN5bqU6K+l5Ye656uZ55qE54Gr6L2mCiAgICAgICAgICAgIGlmICghc3RhY2suaXNFbXB0eSgpICYmIHN0YWNrLnBlZWsoKSA9PSBkZXBhcnR1cmVPcmRlcltpXSkgewogICAgICAgICAgICAgICAgc3RhY2sucG9wKCk7ICAvLyDlh7rnq5kKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIOWmguaenOagiOmhtuS4jeaYr+W9k+WJjeW6lOivpeWHuuermeeahOeBq+i9pu+8jOivtOaYjumhuuW6j+S4jeWvue+8jOi/lOWbniAtMQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyDmm7TmlrDovabnq5nlhoXmnIDlpKfngavovabmlbDph48KICAgICAgICAgICAgbWF4VHJhaW5zID0gTWF0aC5tYXgobWF4VHJhaW5zLCBzdGFjay5zaXplKCkpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG1heFRyYWluczsKICAgIH0KfQo=