Red 姐姐在 OO 公司上班,每个月领着微薄的薪水。这天,公司领导要求他开发一个公司内部的信息管理系统,但是 Red 姐姐懒得写。请你帮帮领导!
员工
在这个系统里,公司的每位员工(老板也是员工)都有在每个时刻独一无二的工号 。除公司老板外,每位员工有且只有一位领导,每个领导可能有一到多个下属,显然一个员工可能同时具备“领导的下属”和“下属的领导”这两个身份。我们指定老板的 为 1。
你的系统需要支持对对员工领导的询问:
消息
系统里的每个消息都有对应的 和内容字符串 (不含空格)。
消息的 从 开始计数,因此系统里新建的第一条消息 ,第二条 ,以此类推。
消息队列
每个员工都有一个接收消息队列。接受消息队列是队列。我们规定队首的消息为第 个消息。
你的系统需要支持对消息队列的查询和修改:
-
查询:输入指令格式 queryMessage <id> <i>
指定员工工号 ,查询员工的接受消息队列从队头开始的第 个消息。按顺序返回消息的 、内容字符串、发送人 ,每个元素用一个空格分隔;如果员工不存在或消息不存在,返回 。
-
修改:输入指令格式 sendMessage <id1> <id2> <message>
新建一个消息,指定发送人的 和接收人的 和消息内容 。将消息加入接收人的接收消息队列队尾。
如果 或 不存在,则发送失败。如果发送成功,则返回 ,否则返回 。
岗位变动
你的系统需要支持三种岗位变动的方式:
-
员工离职:输入指令格式 depart <id1> <id2>
指定员工的 ,对应的员工不再是其领导的下属,其下属将成为工号为 的员工的下属。请注意, 有可能被新员工复用。如果 或 不存在,则返回 ,否则返回 。
-
员工入职:输入指令格式 enter <id1> <id2>
指定新员工的 ,将其变为工号为 的员工的下属。如果 已经存在或 不存在,则返回 ,否则返回 。
-
员工岗位变动:输入指令格式 change <id1> <id2>
指定员工的 ,将其变为工号为 的员工的下属。如果 或 不存在,则返回 ,否则返回 。