#iai21c4. 栈的调度(Stack Scheduling)

栈的调度(Stack Scheduling)

栈的调度

题目描述

给定 nn 个数字,已知这些数字的入栈顺序为 1,2,,n1,2,\cdots,n,给定一个出栈顺序 a1,a2,,ana_1,a_2,\cdots,a_n,请判断它是否是一个合理的出栈顺序。

输入格式

  • 第一行:单个整数 nn
  • 第二行:nn 个整数表示 a1,a2,,ana_1,a_2,\cdots,a_n

输出格式

  • 如果合法,输出 Valid,否则输出 Invalid

样例输入 #1

5
4 5 3 2 1

样例输出 #1

Valid

样例说明 #1

1 入栈 2 入栈 3 入栈 4 入栈 4 出栈 5 入栈 5 出栈 3 出栈 2 出栈 1 出栈。

样例输入 #2

2
1 1

样例输出 #2

Invalid

数据范围

  • 1ain1\le a_i\le n
  • 对于 30% 的数据,1n201\le n\le 20
  • 对于 60% 的数据,1n20001\le n\le 2000
  • 对于 100% 的数据,1n1000001\le n\le 100000

测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 N≤10 / 特殊: 顺序出栈 / 特殊: 逆序出栈
2 15 9~11 Hack: N=1边界 / Hack: 重复元素 / Hack: 越界值
3 30 12~20 中规模 N≈100~2000 / 大规模 N≈1e5 压力
4 25 21~25 随机 N=1~1e5 回归