#P6035. Ryoku 的逆序对
Ryoku 的逆序对
题目背景
Ryoku 并不知道这题的背景是什么。
题目描述
Ryoku 有一个正整数 的排列 。
她告诉你一个序列 ,表示对于每个数 ,对于所有 有 个数可以与 组成逆序对(逆序对的定义是:满足 且 的一组 称作一对逆序对)。
不幸的是,Ryoku 给你的序列 有一些位置污损了,你想知道有多少个可能的排列 能符合条件。
请你输出答案并构造一个字典序最小的排列 (对于排列 若存在某个位置 ,使得 且 ,则 的字典序小于 )。
输入格式
输入包含两行。
第一行包含一个整数 。
第二行包含 个整数,为序列 。若给出的 ,则代表这个位置被污损了。
输出格式
输出包含两行。
第一行包含一个整数,为可能的排列 的方案数,对 取模。
第二行包含 个整数,为字典序最小的符合条件的排列。若第一行答案为 ,则第二行无需输出。
5
0 3 0 0 0
1
1 5 2 3 4
5
0 3 -1 0 0
3
1 5 2 3 4
5
0 3 -1 0 1
0
提示
【样例 1 说明】
对于 ,存在逆序对 共三对。
【样例 2 说明】
符合条件的排列有:$\{1, 5, 4, 2, 3\}, \{1, 5, 3, 2, 4\}, \{1, 5, 2, 3, 4\}$。共三种,其中字典序最小的为 。
【数据规模与约定】
对于 的数据,。
对于另外 的数据,。
对于另外 的数据,。
对于另外 的数据,。
对于另外 的数据,。
对于 的数据,,。