1759: 【编程进阶】任务调度
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
一台超级计算机共有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+1行。
第1行包含三个正整数N、M、K,分别表示CPU的数目、任务数和指令数。
第2行到N+1行,每行包含一条指令。
N≤500, M≤300000, K≤300000。
保证任务的权值在 32 位有符号整型的范围内。
保证一个任务只会被分配一次(即至多被 ADD 一次)。
保证 ADD 指令、DEC 指令和 WORK 指令中的 w 是非负整数。
保证 TRANS 指令的两个参数不相同。
输出
若干行,其中包括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 指令的两个参数不相同。