求教一道题目
pascal吧
全部回复
仅看楼主
level 1
牛的排列
时间限制: 1 Sec 内存限制: 128 MB
【题目描述】
N(1 <= N <= 20)头牛正在和FJ玩另一个疯狂的游戏。牛会将自己排列好,然后问FJ牛排列的序号。作为回报,FJ告诉一个牛排列的序号,牛们必须把自己按照牛排列的序号站好队形。牛排列的是按照字典顺序排列的。如下例:FJ有5头牛,给出了按照字典排序的前3个排列。第一个排列: 1 2 3 4 5第二个排列: 1 2 3 5 4第三个排列: 1 2 4 3 5此时,如果FJ给出排列序号3,牛就会按照第三个排列顺序排列好。也就是1 2 4 3 5。如果牛站好顺序为1 2 5 3 4,然后问FJ自己的排列序号。显然接下去,按照字典顺序:第四个排列: 1 2 4 5 3第五个排列: 1 2 5 3 4因此刚才牛的排列顺序是第五种排列,因此答案是5.FJ和公牛们需要你的帮助去玩这个游戏。他们有K (1 <= K <= 10,000)个疑问。疑问i有两种,C_i是P或则Q。如果C_i是P,那么第二部分是一个整数A_i (1 <= A_i <= N!),表示排列序号。如果C_i是Q,那么第二部分是一个牛排列的顺序B_ij (1 <= B_ij <= N),FJ必须回答出这个排列顺序的序号。
【输入】
第1行,两个用空格隔开的整数N和K第2到2*K+1行,第2*i和2*i+1包含一个疑问。第 2*i 如果是P,就是要找出这个排列序号的具体牛排列。如果是Q,就是根据牛的排列顺序找出排列序号。
【输出】
第1到K行,对k个疑问的回答。
【样例输入】
5 2
P
3
Q
1 2 5 3 4
【样例输出】
1 2 4 3 5
5
2016年08月14日 01点08分 1
1