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 指令的两个参数不相同。

分类标签