#DEPR002. DE-PR-002 实操二 渠道订单汇总

    ID: 643 Type: Default 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>代码实操数据工程技术人员综合基础进阶综合题族:DE-PR-002公开样题公开样题

DE-PR-002 实操二 渠道订单汇总

DE-PR-002 · 数据工程技术人员 · 综合 · 满分 25 分 · 基础进阶综合

可提交 C、C++、Java、Python 3 和 Node.js。评测机没有安装 Kotlin、PyPy,也没有支持大整数的 GNU awk,因此不开放 Kotlin、PyPy 和 Bash。

业务与规则

1. 客户表customer_id唯一,所属渠道在给定渠道列表内;渠道列表唯一。

2. 订单表中同order_id可能出现多次,先保留version最大者,版本相同保留输入较后者。之后才判断状态与关联。

3. 只计入最新记录status=PAID且customer_id存在于客户表的订单;其他订单忽略。

4. 每个渠道输出有效订单数、去重客户数和金额合计,金额按分输出;渠道无订单也输出0。按渠道字典升序。

输入

第一行k,随后k行渠道名称。下一行m,随后m行customer_id channel。下一行n,随后n行order_id customer_id version status amount;status为PAID或CANCELLED,amount为非负整数分。

输出

共k行:channel order_count customer_count amount_sum。

范围

1≤k≤100;0≤m,n≤100000;version≤1e9,amount≤1e12分;汇总额用64位整数。所有编号与渠道仅含大写字母、数字。建议3秒、256MB,按语言校准。

样例输入

3
WEB
APP
SHOP
2
C1 WEB
C2 APP
5
O1 C1 1 PAID 100
O1 C1 2 CANCELLED 100
O2 C2 1 PAID 200
O3 CX 1 PAID 300
O4 C2 1 PAID 50

样例输出

APP 2 1 250
SHOP 0 0 0
WEB 0 0 0

附件中的 sample.in、sample.out 与上面样例一致,不计入 25 分。计分点见测试配置,按点给分。

整数和文本按空白分隔后的 token 精确比较;小数允许绝对误差或相对误差 1e-6。时限 2 秒、内存 256MB;Java、Python 3 和 Node.js 时限按 2 倍,Java 内存按 2 倍。

题族:DE-PR-002。状态:公开样题。组卷:否。公开:是。