1787: task
文件提交:无需freopen
内存限制:512 MB
时间限制:1.000 S
评测方式:普通裁判
命题人:
提交:0
解决:0
题目描述
任务调度
一台超级计算机共有N 颗CPU。现在这台超级计算机有M 个任务要做,但同时还要考虑到不能让CPU 过热。所幸的是这台超级计算机已经将任务安排好了,现在要做的只是请你根据安排好的指令来模拟它的工作过程。
一开始,这N 颗CPU 都没有被分配任何的任务。之后,会给你以下几类指令(CPU的编号为1 到N 的整数,任务的编号为1 到M 的整数):
ADD n k w
将k号任务(权值为w)分配给n号CPU
DEC n k w
将k号任务的权值减少w(已知k号任务被分配给了n号CPU)
TRANS n1 n2
将分配给n1号CPU的任务全部转移给n2号CPU
MIN n
输出分配给n号CPU的任务中权值最小的任务的权值
WORK n w
将分配给n号CPU的任务中权值最小的任务的权值加上w,如果权值最小的任务不唯一,则不更改权值,并输出一行“ERROR”
一台超级计算机共有N 颗CPU。现在这台超级计算机有M 个任务要做,但同时还要考虑到不能让CPU 过热。所幸的是这台超级计算机已经将任务安排好了,现在要做的只是请你根据安排好的指令来模拟它的工作过程。
一开始,这N 颗CPU 都没有被分配任何的任务。之后,会给你以下几类指令(CPU的编号为1 到N 的整数,任务的编号为1 到M 的整数):
ADD n k w
将k号任务(权值为w)分配给n号CPU
DEC n k w
将k号任务的权值减少w(已知k号任务被分配给了n号CPU)
TRANS n1 n2
将分配给n1号CPU的任务全部转移给n2号CPU
MIN n
输出分配给n号CPU的任务中权值最小的任务的权值
WORK n w
将分配给n号CPU的任务中权值最小的任务的权值加上w,如果权值最小的任务不唯一,则不更改权值,并输出一行“ERROR”
输入
输入文件包含K+1 行。
第1行包含三个正整数N、M、K,分别表示CPU 的数目、任务数和指令数。
第2行到K+1 行,每行包含一条指令。
第1行包含三个正整数N、M、K,分别表示CPU 的数目、任务数和指令数。
第2行到K+1 行,每行包含一条指令。
输出
输出文件包含若干行,其中包括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
提示
对于全部的数据,N≤150,M≤80000,K≤100000。
保证任务的权值在32 位有符号整型的范围内。
保证一个任务只会被分配一次(即至多被ADD 一次)。
保证ADD 指令、DEC 指令和WORK 指令中的w 是非负整数。
保证TRANS 指令的两个参数不相同。
保证任务的权值在32 位有符号整型的范围内。
保证一个任务只会被分配一次(即至多被ADD 一次)。
保证ADD 指令、DEC 指令和WORK 指令中的w 是非负整数。
保证TRANS 指令的两个参数不相同。