{"raw_statement":[{"iden":"statement","content":"在计算机世界中，“表格”是一种简单、基础而且十分通用的数据结构，在数据库、人工智能等领域中都有广泛的应用。表格由若干行、若干列的单元格组成：\n\n| Name     | p1   | p2   | p3   | Score |\n| :------- | :--- | ---- | ---- | ----- |\n| ZhangSan | 40   | 30   | 28   | 98    |\n| LiSi     | 40   | 28   | 30   | 98    |\n| WangWu   | 40   | 25   | 20   | 85    |\n\nCSV (Comma-Separated Values) 是一种常用的表格格式。Dr. X 需要你编程处理简化的 CSV 文\n件，格式规定如下：\n\n- CSV 文件包含 $n$ 行数据，其中第一行是标题行。\n- CSV 文件每行一个字符串，对应了表格的一行。行中的单元格由**半角逗号**分隔。\n- 每个单元格至少包含一个字符。单元格有两种类型：\n  - **数值单元格**：由至少一个数字字符 $(0\\sim 9)$ 组成。\n  - **字符串单元格**：由数字字符 $(0\\sim 9)$ 和大小写字母 $(\\tt{a\\sim z},\\tt{A\\sim Z})$ 组成,且至少包含一个字母。\n\n- 标题行的所有单元格都是字符串单元格，且互不相同。标题行中包含了列的名称。\n\n以下是一个 CSV 文件的示例：\n\n```\nName,p1,p2,p3,Score\nZhangSan,40,30,28,98\nLiSi,40,28,30,98\nWangWu,40,25,20,85\n```\n\n你的任务是**根据指定的列为表格中的行排序**。例如根据 `Score- , Name+ , p3-` 排序意味着：\n\n- 优先按 Score 列从大到小排序。Score 列都是数值单元格，因此按数值排序。\n\n- 如果 Score 列相同，按 Name 列从小到大排序。Name 列都是字符串单元格，因此按照字典排序。\n\n- 如果 Score 和 Name 列都相同，按 p3 列从大到小排序。p3 列都是数值单元格，因此按数\n  值排序。\n\n我们保证 CSV 文件每一行的单元格数量相同，且除标题行外，**每一列要么全是数值单元格，要么全是字符串单元格**。"},{"iden":"input","content":"输入数据分为两部分。第一部分描述了 CSV 表格：\n- 第一行一个整数 $n$，表示 CSV 文件的行数（**包含标题行**）。\n- 接下来 $n$ 行,每行一个字符串，描述 CSV 表格中的行。\n\n第二部分描述了排序要求:\n\n- 第一行一个整数 $m$，表示排序依据列的数量。\n\n- 接下来 $m$ 行，每行一个字符串，按顺序给出了排序依据的列名及排序方式（加号或减号）。加号代表升序排列、减号代表降序排列。"},{"iden":"output","content":"输出 $n$ 行，为排序后的 CSV 表格（**包含标题行**）。对于所有排序依据列的值都相同的行，保持它们在输入文件中的相对顺序。"},{"iden":"note","content":"对于 $100\\%$ 的数据，满足 $1 \\leq n \\leq 100$，表格不超过 $10$ 列，字符串单元格不超过 $16$ 个字符，且数值单元格中的数值是 $0$ 到 $10^4$ 之间的整数。\n\n>本题原始满分为 $20\\text{pts}$。"}],"translated_statement":null,"sample_group":[["4\nName,p1,p2,p3,Score\nZhangSan,40,30,28,98\nLiSi,40,28,30,98\nWangWu,40,25,20,85\n3\nScore-\nName+\np3-","Name,p1,p2,p3,Score\nLiSi,40,28,30,98\nZhangSan,40,30,28,98\nWangWu,40,25,20,85"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}