#755. 【提高】任务调度
【提高】任务调度
题目描述
一台超级计算机共有 颗 CPU。现在这台超级计算机有 个任务要做,但同时还要考虑到不能让 CPU 过热。所幸的是这台超级计算机已经将任务安排好了,现在要做的只是请你根据安排好的指令来模拟它的工作过程。
一开始,这 颗 CPU 都没有被分配任何的任务。之后,会给你以下几类指令(CPU 的编号为 到 的整数,任务的编号为 到 的整数):
ADD n k w:将 号任务(权值为 )分配给 号 CPU
DEC n k w:将 号任务的权值减少 (已知 号任务被分配给了 号 CPU)
TRANS n1 n2:将分配给 号 CPU 的任务全部转移给 号 CPU
MIN n:输出分配给 号 CPU 的任务中权值最小的任务的权值
WORK n w: 将分配给 号 CPU 的任务中权值最小的任务的权值加上 ,如果权值最小的任务不唯一,则不更改权值,并输出一行 ERROR
输入格式
包含 行。
第 行包含三个正整数 ,分别表示 CPU 的数目、任务数和指令数。
第 行到 行,每行包含一条指令。
输出格式
若干行,其中包括 MIN 语句的输出和 ERROR 输出,每个输出占一行。
样例
2 3 13
ADD 1 2 100
ADD 1 1 90
MIN 1
WORK 1 20
TRANS 1 2
MIN 2
ADD 1 3 105
TRANS 2 1
MIN 1
DEC 1 3 200
MIN 1
DEC 1 1 205
WORK 1 15
90
100
100
-95
ERROR
提示
- 对于全部的数据,。
- 保证任务的权值在32 位有符号整型的范围内。
- 保证一个任务只会被分配一次(即至多被ADD 一次)。
- 保证ADD 指令、DEC 指令和WORK 指令中的w 是非负整数。
- 保证TRANS 指令的两个参数不相同。
来源
- BZOJ5179
- JSOI2011 任务调度
- 洛谷U104029