#P2448. A New Operating System

A New Operating System

题目描述

梅是一个可爱的女孩。由于她的孝心,她想在母亲生日那天送礼物。因为她的父母都是世界顶级程序员,她决定设计一个新程序,一个操作系统的特殊程序!在她出色的编程技巧的帮助下,MayMay已经完成了新操作系统的内核。而生日就要到,她担心时间还不足以及时完成整个项目。作为她最好的网友,你有责任帮助她。

这是一个多任务操作系统,进程同时运行。操作系统中有以下命令:

CreateProcess(PID,记忆,优先级)CreateProcess(PID,记忆,优先级)

使用过程识别 PID 和内存大小以及优先级创建新进程。此命令中的优先级称为进程的外部优先级。

AddMessage(PID,优先级)AddMessage(PID,优先级)

这意味着,在进程 PID 的消息队列中添加一条新消息,优先级为优先级。具有更高优先级的消息将更早地运行,较低。优先级称为内部优先级。

运行

了解最大 HPHP 的信息。HPHP 被定义为消息的内部优先级和相应的过程优先级的产物。如果两个或多个消息具有相同的 HP,则具有最小 PID 的消息将首先运行。将信息Run:HP“Run: HP”打印到输出文件,HPHP将被您找到的消息HPHP替换,或者如果消息队列为空,则打印Empty“Empty”。如果存在,请删除此消息。

更改优先级(PID,NewValue)

将过程 PID 的外部优先级更改为 NewValue。

GetMemory(PID,记忆)

过程 PID 内存增加内存量。

自由记忆(PID,记忆)

过程 PID 内存减少内存量。

运行程序(PID)

与 Run 命令类似。查找进程 PID 消息队列中的消息,将信息Run:HP“Run: HP”打印到输出文件,优先级将被您找到的消息优先级替换,或者如果消息队列为空,则打印“Empty”。如果存在,请删除此消息。

CloseMax 记忆

找出使用最多内存的过程,如果存在,则关闭它(如果领带,最小PID应该首先释放),或者打印“Empty”代替。

CloseProcess(PID) 关闭过程

关闭过程与PID的识别。

每当一个过程的内存小于或等于0时,它会自动关闭。在上述任何命令中,除了第一个命令,如果PID不存在,请打印一个“错误”到输出。对于第一个命令,如果 PID 已经存在,请打印一个“Error”并忽略此命令。

输入

输入中的第一行是整数N(1<=N<=100000)N(1 <= N <= 100000),它表示命令数。下一个NN行,每个都给出上面描述的命令。输入文件中给出的任何数字都是非负整数,不会超过10000001000000万。

输出

输出格式已在上面描述。 输入数 1

11
CloseMaxMemory
CreateProcess(1,100,1)
CreateProcess(2,200,1)
CreateProcess(3,300,1)
AddMessage(1,9)
AddMessage(2,19)
AddMessage(1,10)
GetMemory(2,999)
CloseMaxMemory
Run
RunProcess(1)

输出数位 1

Empty
Run: 10
Run Process: 9

提示

输入文件的总大小可能高达21.8MB。 来源

POJ 月刊, Minkerui