对每个构建物,检查其要求版本下是否三端(android、ios、pc)都至少有一条 READY。
注意:FAIL 不计入;version=need_ver 的记录忽略;计划外日志忽略。
大型软件系统上线前,构建侧会为每个模块准备一份构建物,并分别在 android、ios、pc 三个渠道写入就绪日志。为提前发现发布缺口,需要根据构建计划与渠道检查日志,输出仍缺少就绪记录的构建物清单。
第一行两个整数 N,M(1≤N≤10000,0≤M≤30000)。N 为构建计划条数,M 为渠道检查日志条数。
随后 N 行,每行 3 个空白分隔字段:artifact_id channel need_ver。含义:artifact_id 为构建物标识;channel 为业务渠道;need_ver 为本次要求发布的版本。
再随后 M 行,每行 4 个空白分隔字段:artifact_id version platform status。
platform 只会是 android、ios、pc;status 只会是 READY 或 FAIL。
统计规则:对每条构建计划,只有在 need_ver 下同时存在 android、ios、pc 三个平台的 READY 记录,才认为该构建物发布完整。同一构建物、同一版本、同一平台可出现多条记录,只要存在至少一条 READY 即可;FAIL 不能替代 READY;非 need_ver 的记录不计入;未出现在构建计划中的日志忽略。
各字段长度为 1 到 50,只包含大小写字母、数字、点号、下划线和短横线;artifact_id 在构建计划中互不重复。输入保证格式合法,无空行,无多余空格。
按构建计划中的先后顺序,逐行输出每个发布不完整的构建物的 artifact_id。若全部完整,输出 none。
输入
3 6
mod_a lobby 1.2
mod_b lobby 1.2
mod_c shop 2.0
mod_a 1.2 android READY
mod_a 1.2 ios READY
mod_a 1.2 pc READY
mod_b 1.2 android READY
mod_b 1.2 pc READY
mod_c 2.0 ios READY
输出
mod_b
mod_c
说明
mod_a 在版本 1.2 下三端均有 READY,完整。mod_b 缺 ios 的 READY。mod_c 仅有 ios 一条,且另两端缺失,不完整。按计划顺序输出 mod_b、mod_c。
输入
2 7
kit_x main build-9
kit_y main build-9
kit_x build-9 android FAIL
kit_x build-9 android READY
kit_x build-9 ios READY
kit_x build-9 pc READY
kit_y build-9 android READY
kit_y build-9 ios READY
kit_y build-9 pc READY
输出
none
说明
kit_x 的 android 虽先有 FAIL,但随后有 READY,三端齐全。kit_y 三端各有一条 READY。全部完整,输出 none。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册