[信息与未来 2024] 数据排序

Luogu
IDLGB3982
Time1000ms
Memory512MB
DifficultyP3
模拟2024江苏排序信息与未来
在计算机世界中,“表格”是一种简单、基础而且十分通用的数据结构,在数据库、人工智能等领域中都有广泛的应用。表格由若干行、若干列的单元格组成: | Name | p1 | p2 | p3 | Score | | :------- | :--- | ---- | ---- | ----- | | ZhangSan | 40 | 30 | 28 | 98 | | LiSi | 40 | 28 | 30 | 98 | | WangWu | 40 | 25 | 20 | 85 | CSV (Comma-Separated Values) 是一种常用的表格格式。Dr. X 需要你编程处理简化的 CSV 文 件,格式规定如下: - CSV 文件包含 $n$ 行数据,其中第一行是标题行。 - CSV 文件每行一个字符串,对应了表格的一行。行中的单元格由**半角逗号**分隔。 - 每个单元格至少包含一个字符。单元格有两种类型: - **数值单元格**:由至少一个数字字符 $(0\sim 9)$ 组成。 - **字符串单元格**:由数字字符 $(0\sim 9)$ 和大小写字母 $(\tt{a\sim z},\tt{A\sim Z})$ 组成,且至少包含一个字母。 - 标题行的所有单元格都是字符串单元格,且互不相同。标题行中包含了列的名称。 以下是一个 CSV 文件的示例: ``` Name,p1,p2,p3,Score ZhangSan,40,30,28,98 LiSi,40,28,30,98 WangWu,40,25,20,85 ``` 你的任务是**根据指定的列为表格中的行排序**。例如根据 `Score- , Name+ , p3-` 排序意味着: - 优先按 Score 列从大到小排序。Score 列都是数值单元格,因此按数值排序。 - 如果 Score 列相同,按 Name 列从小到大排序。Name 列都是字符串单元格,因此按照字典排序。 - 如果 Score 和 Name 列都相同,按 p3 列从大到小排序。p3 列都是数值单元格,因此按数 值排序。 我们保证 CSV 文件每一行的单元格数量相同,且除标题行外,**每一列要么全是数值单元格,要么全是字符串单元格**。 ## Input 输入数据分为两部分。第一部分描述了 CSV 表格: - 第一行一个整数 $n$,表示 CSV 文件的行数(**包含标题行**)。 - 接下来 $n$ 行,每行一个字符串,描述 CSV 表格中的行。 第二部分描述了排序要求: - 第一行一个整数 $m$,表示排序依据列的数量。 - 接下来 $m$ 行,每行一个字符串,按顺序给出了排序依据的列名及排序方式(加号或减号)。加号代表升序排列、减号代表降序排列。 ## Output 输出 $n$ 行,为排序后的 CSV 表格(**包含标题行**)。对于所有排序依据列的值都相同的行,保持它们在输入文件中的相对顺序。 [samples] ## Note 对于 $100\%$ 的数据,满足 $1 \leq n \leq 100$,表格不超过 $10$ 列,字符串单元格不超过 $16$ 个字符,且数值单元格中的数值是 $0$ 到 $10^4$ 之间的整数。 >本题原始满分为 $20\text{pts}$。
Samples
Input #1
4
Name,p1,p2,p3,Score
ZhangSan,40,30,28,98
LiSi,40,28,30,98
WangWu,40,25,20,85
3
Score-
Name+
p3-
Output #1
Name,p1,p2,p3,Score
LiSi,40,28,30,98
ZhangSan,40,30,28,98
WangWu,40,25,20,85
API Response (JSON)
{
  "problem": {
    "name": "[信息与未来 2024] 数据排序",
    "description": {
      "content": "在计算机世界中,“表格”是一种简单、基础而且十分通用的数据结构,在数据库、人工智能等领域中都有广泛的应用。表格由若干行、若干列的单元格组成: | Name     | p1   | p2   | p3   | Score | | :------- | :--- | ---- | ---- | ----- | | ZhangSan | 40   | 30   | 28   | 98    | | ",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGB3982"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "在计算机世界中,“表格”是一种简单、基础而且十分通用的数据结构,在数据库、人工智能等领域中都有广泛的应用。表格由若干行、若干列的单元格组成:\n\n| Name     | p1   | p2   | p3   | Score |\n| :------- | :--- | ---- | ---- | ----- |\n| ZhangSan | 40   | 30   | 28   | 98    |\n| ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments