#6740. 审批系统
审批系统
题目描述
某市上线了一套自动化政务审批系统。由于该系统由多个分布式子模块构成,其原始生成的事务记录(Record)存在格式不统一、键值对无序等问题,导致审计部门难以直接检索。为了提高审计效率,需要你编写一个重构程序,对 条原始记录进行标准化转换并按指定规则全局排序。
每条原始记录严格包含5个属性字段,以空格分隔,格式如下:
date=YYYY-M-D time=H:M:S user=UID action=Operation params=Args
标准化转换规则
- 时间戳补全:年份保持4位(保证输入的就是4位),月份、日期、小时、分钟、秒钟若不足两位,需在前方补
0补齐至2位(例如:2026-3-1转换为2026-03-01,9:2:5转换为09:02:05)。 - 标识符归一化:
user字段中包含的大写英文字母需全部转换为小写,数字保持不变。 - 参数域重组:
params字段包含若干以&连接的键值对(格式为key=value)。需将所有键值对按照key的字典序升序重新排列并连接。若params后面没有内容,则视为空字符串。 - 序号生成:重构后的每条记录前需冠以序号及点号(如
1.)。为保证对齐,所有序号的位数必须与最大序号的位数一致,不足部分在前方补0。
全局排序规则
将所有记录转换完成后,按照以下优先级进行升序排序:
- 时间戳:按
YYYY-MM-DD HH:MM:SS的字典序排列。 - 操作用户:若时间相同,按归一化后的
user字典序排列。 - 操作类型:若上述项均相同,按
action的字典序排列。 - 参数字符串:若上述项均相同,按重组后的
params全字符串字典序排列。
输入格式
第一行输入一个正整数 ,表示待处理的记录总数。 接下来 行,每行一条原始格式记录。
输出格式
输出共 行,为经过标准化处理并排序后的记录。
每行格式:序号. YYYY-MM-DD HH:MM:SS user action params
注意:. 后面有一个空格。
样例输入 1
4
date=2026-3-1 time=9:2:5 user=Alice action=login params=b=2&a=1
date=2026-3-1 time=9:2:4 user=bob action=refund params=
date=2026-3-1 time=9:2:5 user=alice action=logout params=z=9
date=2026-3-1 time=9:2:5 user=alice action=login params=a=1
样例输出 1
1. 2026-03-01 09:02:04 bob refund
2. 2026-03-01 09:02:05 alice login a=1
3. 2026-03-01 09:02:05 alice login a=1&b=2
4. 2026-03-01 09:02:05 alice logout z=9
样例输入 2
5
date=2026-10-10 time=10:10:10 user=Beta action=process params=z=1&y=2&x=3
date=2026-10-10 time=10:10:10 user=Alpha action=process params=
date=2026-10-10 time=10:10:10 user=Alpha action=process params=v=100
date=2026-10-10 time=10:10:09 user=Gamma action=alert params=msg=critical
date=2026-10-10 time=10:10:10 user=Beta action=access params=
样例输出 2
1. 2026-10-10 10:10:09 gamma alert msg=critical
2. 2026-10-10 10:10:10 alpha process
3. 2026-10-10 10:10:10 alpha process v=100
4. 2026-10-10 10:10:10 beta access
5. 2026-10-10 10:10:10 beta process x=3&y=2&z=1
样例输入 3
12
date=2025-1-1 time=0:0:0 user=Root01 action=init params=
date=2026-1-1 time=10:10:10 user=Alice action=check params=a=1&A=2
date=2026-1-1 time=10:10:10 user=alice action=alpha params=
date=2026-1-1 time=10:10:10 user=alice action=check params=
date=2026-1-1 time=10:10:10 user=alice action=check params=A=2&a=1
date=2026-1-1 time=10:10:10 user=ALICE action=check params=A=2&a=1
date=2026-6-15 time=8:30:5 user=Guest action=view params=id=101
date=2026-6-15 time=12:0:0 user=User99 action=download params=file=doc
date=2026-6-15 time=12:0:0 user=User99 action=upload params=size=1024&type=png&name=test
date=2026-6-15 time=12:0:0 user=user99 action=upload params=name=test&size=1024&type=png
date=2026-12-31 time=23:59:59 user=SystemAdmin action=restart params=mode=force&delay=0
date=2026-12-31 time=23:59:59 user=systemadmin action=restart params=delay=0&mode=force
样例输出 3
01. 2025-01-01 00:00:00 root01 init
02. 2026-01-01 10:10:10 alice alpha
03. 2026-01-01 10:10:10 alice check
04. 2026-01-01 10:10:10 alice check A=2&a=1
05. 2026-01-01 10:10:10 alice check A=2&a=1
06. 2026-01-01 10:10:10 alice check A=2&a=1
07. 2026-06-15 08:30:05 guest view id=101
08. 2026-06-15 12:00:00 user99 download file=doc
09. 2026-06-15 12:00:00 user99 upload name=test&size=1024&type=png
10. 2026-06-15 12:00:00 user99 upload name=test&size=1024&type=png
11. 2026-12-31 23:59:59 systemadmin restart delay=0&mode=force
12. 2026-12-31 23:59:59 systemadmin restart delay=0&mode=force
数据范围
user仅含大小写字母、数字action仅含小写字母params内各个 key 互不相同- 单条
params键值对数量不超过 50