888889
  • 板块灌水区
  • 楼主jijijijiji000
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/5 16:00
  • 上次更新2024/7/5 16:02:09
查看原帖
888889
1312089
jijijijiji000楼主2024/7/5 16:00

B3982 [信息与未来 2024] 数据排序 提交 322 通过 82 时间限制 1.00s 内存限制 512.00MB 提交答案 加入题单 做题计划(首页) 个人题单 团队题单 保存 题目提供者 沉石鱼惊旋 山有木兮 难度 普及/提高− 历史分数 100 提交记录 查看题解 标签 模拟 排序 江苏 2024 进入讨论版 相关讨论 70分,求助 推荐题目 暂无 复制Markdown 展开 题目描述 在计算机世界中,“表格”是一种简单、基础而且十分通用的数据结构,在数据库、人工智能等领域中都有广泛的应用。表格由若干行、若干列的单元格组成:

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 ∼ 9 ) (0∼9) 组成。 字符串单元格:由数字字符 ( 0 ∼ 9 ) (0∼9) 和大小写字母 ( � ∼ � , � ∼ � ) (a∼z,A∼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 文件每一行的单元格数量相同,且除标题行外,每一列要么全是数值单元格,要么全是字符串单元格。

输入格式 输入数据分为两部分。第一部分描述了 CSV 表格:

第一行一个整数 � n,表示 CSV 文件的行数(包含标题行)。 接下来 � n 行,每行一个字符串,描述 CSV 表格中的行。 第二部分描述了排序要求:

第一行一个整数 � m,表示排序依据列的数量。

接下来 � m 行,每行一个字符串,按顺序给出了排序依据的列名及排序方式(加号或减号)。加号代表升序排列、减号代表降序排列。

输出格式 输出 � n 行,为排序后的 CSV 表格(包含标题行)。对于所有排序依据列的值都相同的行,保持它们在输入文件中的相对顺序。

输入输出样例 输入 #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- 输出 #1复制 Name,p1,p2,p3,Score LiSi,40,28,30,98 ZhangSan,40,30,28,98 WangWu,40,25,20,85 说明/提示 对于 100 % 100% 的数据,满足 1 ≤ � ≤ 100 1≤n≤100,表格不超过 10 10 列,字符串单元格不超过 16 16 个字符,且数值单元格中的数值是 0 0 到 1 0 4 10 4 之间的整数。

本题原始满分为 20 pts 20pts。

在洛谷, 享受 Coding 的欢乐

关于洛谷 | 帮助中心 | 用户协议 | 联系我们 小黑屋 | 陶片放逐 | 社区规则 | 招贤纳才 Developed by the Luogu Dev Team 2013-2024 , © 洛谷 增值电信业务经营许可证 沪B2-20200477 沪ICP备18008322号 All rights reserved.

2024/7/5 16:00
加载中...