97311 - 组合数(combine)
时间限制 : 1 秒
内存限制 : 128 MB
小明有n个数字(均是0-9中的数字),希望把它们拼成一个n位数,并且这个n位数不能有前导0(即数字的最高位不是0)。小明想知道能组成多少种不同的数字,并且他想知道,某个数x在这些能组成的数组中从大到小排第几?
输入
输入的第一行包含一个数字n。表示数字的个数。
输入的第二行包含n个数字$a{1},a{2},\ldots ,a_{n}$,它们均是0-9的数字。
输入的第三行包含一个数字x。
输出
输出仅一行,包含两个数字,分别表示组成的不同的数字的个数,及x的排名。
样例
输入
3 1 2 3 321
输出
6 1
输入
4 1 2 3 0 1023
输出
18 18
提示
样例1解释
有三个不同的数字1、2、3。可以组成这样6种不同的三位数:123、132、213、231、312、321。321在其中是最大的数字。
样例2解释
有四个不同的数字1、2、3。可以组成这样18种不同的三位数:1023、1032、1203、1230、1302、1320、2013、2031、2103、2130、2301、2310、3012、3021、3102、3120、3201、3210,1023是最小的数字,排名18。
数据范围
对于所有测试数据有:1≤n≤10。保证输入的数字至少有一个不为0。保证x是一个n位数,且可以由输入的数字组成。 |测试点 |n≤ |特殊性质| |-----|-----|-----| |1| 1| 无| |2~3| 6| $a{i}两两不相同| |4~5| 6| 无| |6~7| 10| a{i}$两两不相同| |8~10| 10| 无|
来源
2026第五届青少年编程挑战精英赛