{"raw_statement":[{"iden":"statement","content":"## 试题 A ：小蓝与钥匙\n\n### 【问题描述】\n\n小蓝是幼儿园的老师，他的班上有 $28$  个孩子，今天他和孩子们一起进行了一个游戏。\n\n小蓝所在的学校是寄宿制学校，$28$ 个孩子分别有一个自己的房间，每个房间对应一把钥匙，每把钥匙只能打开自己的门。现在小蓝让这 $28$  个孩子分别将自己宿舍的钥匙上交，再把这 $28$  把钥匙随机打乱分给每个孩子一把钥匙，有 $28 !=28 \\times 27 \\times \\cdots \\times 1$ 种分配方案。小蓝想知道这些方案中，有多少种方案恰有一半的孩子被分到自己房间的钥匙（即有 $14$  个孩子分到的是自己房间的钥匙，有 $14$  个孩子分到的不是自己房间的钥匙）。\n\n### 【答案提交】\n\n这是一道结果填空的题，你只需要算出结果后提交即可。本题的结果为一个整数，在提交答案时只填写这个整数，填写多余的内容将无法得分。\n\n## 试题 B：排列距离\n\n### 【问题描述】\n\n小蓝最近迷上了全排列，现在他有一个长度为 $17$  的排列，里面包含的元素有：abcdefghijklnopqr,即 a 至 $r$ 中除了 $\\mathrm{m}$ 以外的所有小写字母，这 $17$  个字母在任何一个排列中都恰好出现一次。前面几个排列依次是：\n\n第 $1$  个排列为：abcdefghijklnopqr;\n\n第 $2$  个排列为：abcdefghijklnoprq;\n\n第 $3$  个排列为：abcdefghijklnoqpr;\n\n第 $4$  个排列为：abcdefghijklnoqrp;\n\n第 $5$  个排列为：abcdefghijklnorpq;\n\n第 $6$  个排列为：abcdefghijklnorqp;\n\n第 $7$  个排列为：abcdefghijklnpogr;\n\n第 $8$  个排列为：abcdefghijklnporq;\n\n第 $9$  个排列为：abcdefghijklnpqor;\n\n第 $10$  个排列为：abcdefghijklnpqro。\n\n对于一个排列，有两种转移操作:\n\n1）转移到其下一个排列。如果当前排列已经是最后一个排列，那么下一个排列就是第一个排列。\n\n2）转移到其上一个排列。如果当前排列是第一个排列，那么上一个排列就是最后一个排列。\n\n小蓝现在有两个排列，分别为排列 $A:$ aejcldbhpiogfqnkr,以及排列 $B:$ ncfjboqiealh krpgd，他现在想知道，在只有上述两种转移操作的前提下，排列 $A$ 最少转移多少次能得到排列 $B$。\n\n### 【答案提交】\n\n这是一道结果填空的题，你只需要算出结果后提交即可。本题的结果为一个整数，在提交答案时只填写这个整数，填写多余的内容将无法得分。"},{"iden":"input","content":"输入格式输入一个大写字母，表示第几个问题。"},{"iden":"output","content":"根据所输入的问题编号，输出对应问题的答案。"},{"iden":"note","content":"答题模板，可供参考。\n\n```cpp\n#include<iostream>\nusing namespace std;\nint main() {\n    string ans [] = {\n        \"The answer of task A\", // 双引号中替换为 A 题的答案\n        \"The answer of task B\", // 双引号中替换为 B 题的答案\n    };\n    char T;\n    cin >> T;\n    cout << ans[T - 'A'] << endl;\n    return 0;\n}\n```"}],"translated_statement":null,"sample_group":[],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}