任务面板

普及+/提高 CSP-J 模拟、映射、状态维护 模拟赛 原创

题目描述

一个任务面板需要处理 $q$ 条操作。每个任务用不含空格的编号表示,并有一个优先值。任务状态分为未完成和已完成。

操作格式如下:

  • 1 id p:若任务 id 不存在,则新建一个未完成任务,优先值为 p;若它已存在且未完成,则把优先值改为 p;若它已完成,忽略本操作。
  • 2 id p:若任务 id 存在且未完成,则把优先值改为 p;否则忽略。
  • 3 id:若任务 id 存在且未完成,则将其改为已完成,并把它的优先值加入完成总分;否则忽略。
  • 4 id:若任务 id 存在且未完成,则删除它;否则忽略。
  • 5 id:查询任务状态。

输入格式

第一行输入整数 $q$。接下来 $q$ 行,每行输入一条操作,格式见题目描述。

输出格式

对每条查询操作输出一行:若任务不存在,输出 NONE;若未完成,输出 TODO p;若已完成,输出 DONE p。所有操作结束后,再输出一行三个整数,分别为未完成任务数量、已完成任务数量、完成总分。

数据范围

$1 \le q \le 2\times 10^5$,编号长度不超过 $20$,$1 \le p \le 10^9$。

样例输入 1

5
1 a 5
5 a
2 a 8
3 a
5 a

样例输出 1

TODO 5
DONE 8
0 1 8

样例输入 2

3
1 x 10
4 x
5 x

样例输出 2

NONE
0 0 0
时间限制: 1500ms
内存限制: 256MB
通过率: 0.0%
提交数: 0

设置

导航栏小工具

时钟
显示实时时钟(默认组件)
📝
代码粘贴板
快速创建和分享代码片段