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++);
maxTrains
= Math.
max(maxTrains, stack.
size()); // 更新最大车站内火车数量 }
// 检查栈顶的火车是否是当前应该出站的火车
if (!stack.isEmpty() && stack.peek() == departureOrder[i]) {
stack.pop(); // 出站
} else {
// 如果栈顶不是当前应该出站的火车,说明顺序不对,返回 -1
return -1;
}
}
return maxTrains;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFNjYW5uZXIgc2Nhbm5lciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgogICAgICAgIC8vIOivu+WPlueBq+i9puaVsOmHjwogICAgICAgIGludCBuID0gc2Nhbm5lci5uZXh0SW50KCk7CgogICAgICAgIC8vIOivu+WPlueBq+i9puWHuuermemhuuW6jwogICAgICAgIGludFtdIGRlcGFydHVyZU9yZGVyID0gbmV3IGludFtuXTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICAgICBkZXBhcnR1cmVPcmRlcltpXSA9IHNjYW5uZXIubmV4dEludCgpOwogICAgICAgIH0KCiAgICAgICAgLy8g6LCD55So5pa55rOV5p2l6I635Y+W5pyA5aSn6L2m56uZ5YaF54Gr6L2m5pWw6YePCiAgICAgICAgaW50IHJlc3VsdCA9IGZpbmRNYXhUcmFpbnNBdFN0YXRpb24obiwgZGVwYXJ0dXJlT3JkZXIpOwoKICAgICAgICAvLyDovpPlh7rnu5PmnpwKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4ocmVzdWx0KTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGludCBmaW5kTWF4VHJhaW5zQXRTdGF0aW9uKGludCBuLCBpbnRbXSBkZXBhcnR1cmVPcmRlcikgewogICAgICAgIFN0YWNrPEludGVnZXI+IHN0YWNrID0gbmV3IFN0YWNrPD4oKTsKICAgICAgICBpbnQgY3VycmVudFRyYWluID0gMTsgIC8vIOW9k+WJjeWIsOi+vueahOeBq+i9pgogICAgICAgIGludCBtYXhUcmFpbnMgPSAwOyAvLyDnlKjmnaXorrDlvZXmoIjnmoTmnIDlpKflpKflsI8KCiAgICAgICAgLy8g6YGN5Y6G5q+P5LiA5Liq5Ye656uZ55qE54Gr6L2mCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgLy8g5bCG54Gr6L2m5o6o5YWl5qCI5Lit77yM55u05Yiw5qCI6aG25piv5b2T5YmN5bqU6K+l5Ye656uZ55qE54Gr6L2mCiAgICAgICAgICAgIHdoaWxlIChjdXJyZW50VHJhaW4gPD0gbiAmJiAoc3RhY2suaXNFbXB0eSgpIHx8IHN0YWNrLnBlZWsoKSAhPSBkZXBhcnR1cmVPcmRlcltpXSkpIHsKICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goY3VycmVudFRyYWluKyspOwogICAgICAgICAgICAgICAgbWF4VHJhaW5zID0gTWF0aC5tYXgobWF4VHJhaW5zLCBzdGFjay5zaXplKCkpOyAgLy8g5pu05paw5pyA5aSn6L2m56uZ5YaF54Gr6L2m5pWw6YePCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIOajgOafpeagiOmhtueahOeBq+i9puaYr+WQpuaYr+W9k+WJjeW6lOivpeWHuuermeeahOeBq+i9pgogICAgICAgICAgICBpZiAoIXN0YWNrLmlzRW1wdHkoKSAmJiBzdGFjay5wZWVrKCkgPT0gZGVwYXJ0dXJlT3JkZXJbaV0pIHsKICAgICAgICAgICAgICAgIHN0YWNrLnBvcCgpOyAgLy8g5Ye656uZCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyDlpoLmnpzmoIjpobbkuI3mmK/lvZPliY3lupTor6Xlh7rnq5nnmoTngavovabvvIzor7TmmI7pobrluo/kuI3lr7nvvIzov5Tlm54gLTEKICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG1heFRyYWluczsKICAgIH0KfQo=