#DEPR001. DE-PR-001 实操一 订单清洗与去重
DE-PR-001 实操一 订单清洗与去重
DE-PR-001 · 数据工程技术人员 · 专项 · 满分 25 分 · 基础与进阶
可提交 C、C++、Java、Python 3 和 Node.js。评测机没有安装 Kotlin、PyPy,也没有支持大整数的 GNU awk,因此不开放 Kotlin、PyPy 和 Bash。
业务与规则
1. order_id为NA、amount为NA、或amount<0的行判为无效;无效行计入invalid_count且不参与去重。
2. 其余字段保证有效。amount是以分为单位的整数,可为0;version为非负整数。
3. 有效行按order_id去重,保留version最大者;若版本相同,保留输入位置较后者。duplicate_count=有效原始行数-去重后行数。
4. 输出保留行按order_id字典升序排列。不得先去重再校验。
输入
第一行n;随后n行:order_id customer_id version amount。编号均为仅含大写字母和数字、不含空格的字符串,order_id、amount可为NA。
输出
第一行:保留行数 invalid_count duplicate_count;随后每行:order_id customer_id version amount。无保留行时只输出第一行。
范围
0≤n≤100000;0≤version≤1e9;有效金额0至1e12分。建议2秒、256MB;整数输出精确匹配。
样例输入
6
O1 C1 1 100
O1 C1 2 120
O2 C2 1 NA
NA C2 1 50
O3 C3 1 0
O1 C4 2 130
样例输出
2 2 2
O1 C4 2 130
O3 C3 1 0
附件中的 sample.in、sample.out 与上面样例一致,不计入 25 分。计分点见测试配置,按点给分。
整数和文本按空白分隔后的 token 精确比较;小数允许绝对误差或相对误差 1e-6。时限 2 秒、内存 256MB;Java、Python 3 和 Node.js 时限按 2 倍,Java 内存按 2 倍。
题族:DE-PR-001。状态:公开样题。组卷:否。公开:是。