CF858E Tests Renumeration

题目描述

全伯兰德国家信息学奥林匹克竞赛刚刚结束!弗拉基米尔想把这场竞赛上传到一个受欢迎的网站 Codehorses 上作为练习题。 然而,竞赛的存档文件非常混乱,比如,测试文件都是随意命名的,毫无规律。 弗拉基米尔希望重命名这些测试文件,使它们的名称是从 1 开始的连续整数命名,即 "1", "2", ..., " $ n $ ",其中 $ n $ 是测试文件的总数。 有些文件包含示例测试(样例),另外一些则是常规测试。可能所有测试都是示例,也可能没有示例。弗拉基米尔想要通过重命名文件,使示例测试排在前面,后面的全是常规测试。 弗拉基米尔可以使用的唯一操作是“move”命令。他想编写一个脚本文件,格式为每行 "move file\_1 file\_2"——表示将文件 "file\_1" 重命名为 "file\_2"。若在执行命令时已存在文件 "file\_2",就覆盖它。执行后,"file\_1" 将不存在,而 "file\_2" 拥有原本 "file\_1" 的内容。 请帮助弗拉基米尔编写一个脚本文件,使得执行后的结果: - 所有示例测试的文件名为 "1", "2", ..., " $ e $ ",其中 $ e $ 是示例测试的数量; - 其余是常规测试文件,文件名为 " $ e+1 $ ", " $ e+2 $ ", ..., " $ n $ ",其中 $ n $ 是所有测试文件的总数。

输入格式

第一行包含一个整数 $ n $ ( $ 1 \leq n \leq 10^5 $ ),表示测试文件的数量。 接下来的 $ n $ 行,每行描述一个测试文件,格式为 "name\_i type\_i"。其中 "name\_i" 是文件名,"type\_i" 如果表示示例测试则为 "1",如果为常规测试则为 "0"。文件名由数字和小写英文字母组成,长度在 1 到 6 个字符之间,并且保证不重复。

输出格式

第一行输出弗拉基米尔的脚本文件的最少行数。 接下来输出脚本文件的每一行,格式为 "move file\_1 file\_2",其中 "file\_1" 是当前存在的文件名,"file\_2" 是长度为 1 到 6 的数字或小写字母字符串。 **本翻译由 AI 自动生成**