最长上升子序列
题号:NC52804
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
Special Judge, 64bit IO Format: %lld

题目描述

Bobo 在 ICPCCamp 学会了解决最长上升子序列问题后得到了一个长度为 n 的数列 .
Bobo 想用 来替换其中值为 0 的元素,使得 互不相同(即 的排列)。
现在 Bobo 想知道,替换后最长上升子序列的长度恰好为 (n - 1) 数列的数量。

输入描述:

输入包含不超过 300 组数据,其中不超过 20 组的 n 超过 100.
每组数据的第一行包含一个整数 n ().
第二行包含 n 个整数 ().
保证 中非 0 的元素互不相同。

输出描述:

对于每组数据,输出一个整数表示要求的值。
示例1

输入

复制
3
0 0 0

输出

复制
4
示例2

输入

复制
4
0 0 0 0

输出

复制
9
示例3

输入

复制
5
1 0 0 4 5

输出

复制
1