2752. C - 用户管理系统(user)
时间限制:1000 MS 内存限制:128 MB
题目描述
## 题目描述 在一些论坛当中,用户允许自由发言,但是如果发表了不当言论,那么可能被管理员删帖,也可能被禁言。 某论坛规则简化之后,可以认为,这个论坛有$3$种角色:超级管理员$(Super admin)$,普通管理员$(Admin)$,普通用户$(User)$。一共有$m$个角色,每个角色都有一个从$1$到$m$之间的不重复的编号。其中,编号为$1$的角色是超级管理员,编号在$2$到$k$之间的角色是普通管理员。 ## 所有角色(包括超级管理员,普通管理员,和用户)可以进行以下操作 ### 1.发帖 在这个操作中,如果这个角色**没有被禁言**,那么这个角色就可以发帖。发帖成功后,会使用最小的并且没有使用过的正整数表示帖子编号。(也就是从1开始不断往下编号) ### 2. 跟帖 在这个操作中,如果这个角色**没有被禁言**,并且这个帖子**没有被删除**,那么这个角色可以在这个帖子下跟帖。 ### 3. 删除自己发的帖子 在这个操作中,所有角色都可以删除**自己发送的帖子**,无论是否被禁言(关于管理员删帖的规定请看后续要求)。一个帖子只能被删除$1$次。帖子删除之后,编号仍然保留。 ## 普通管理员和超级管理员可以进行以下操作 ### 4. 删除普通用户发的帖子 在这个操作中,普通管理员可以删除普通用户发送的帖子,但是不能删除其他超级管理员或者普通管理员发送的帖子。一个帖子只能被删除$1$次。(当然,如果这个帖子是自己发的,也可以被自己删除)帖子删除之后,编号仍然保留。 ### 5. 禁言普通用户 在这个操作中,普通管理员和超级管理员可以禁言普通用户,但是不能禁言超级管理员或者普通管理员,也不能禁言自己。一个已经被禁言的普通用户不能被第二次禁言,并且禁言不能被撤销。 ## 超级管理员可以进行以下操作 ### 6. 删除任何角色发的帖子 在这个操作中,超级管理员可以删除任何角色(包括自己)发送的帖子。一个帖子只能被删除$1$次。帖子删除之后,编号仍然保留。 现在,给出一共$n$个操作,请你代替系统,做出反馈:如果第i个操作符合社区规则,那么在第i行输出$`Succeed$`;否则,在第i行输出$`FAILED$`。 ## 输入格式 共$n+1$行。 第$1$行,$3$个整数,分别表示$n,m,k$。 之后$n$行,每行按顺序表示一个操作。请注意,下文中双冒号`::`前后的$`a`、`b$`和$`c$`都是整数,并且可能是负数,而非字符串。 第$1$个操作(发帖)的格式是$`a::new_chat$`,其中$a$表示操作角色编号。注意,这个操作会按从1开始的顺序自动生成帖子编号。 第$2$个操作(跟帖)的格式是$`a::follow::b$`,其中$a$表示操作角色编号,$b$表示帖子编号。 第$3$个操作(删除自己发的帖子)的格式是$`a::delete::b$`,其中$a$表示操作角色编号,$b$表示帖子编号。 第$4$个操作(管理员删除普通用户或者自己发的帖子)的格式是$`a::admin_delete::b$`,其中$a$表示操作角色编号,$b$表示帖子编号。 第$5$个操作(管理员禁言普通用户)的格式是$`a::comment_deny::c$`,其中$a$表示操作角色编号,$c$表示被禁言的角色编号。 第$6$个操作(超级管理员删除任何角色发的帖子)的格式是$`a::super_admin_delete::b$`,其中$a$表示操作角色编号,$b$表示帖子编号。 本题一共$20$个数据点。其中: 数据点$1-4$满足:$1\le k\le m \le 10, 1\le n \le 100, 1\le a,b,c \le 10$,同时保证,只会出现操作$`1,2$`。(简单判断帖子和用户是否存在即可) 数据点$5-8$满足:$1\le k\le m \le 100, 1\le n \le 1000, 1\le a,b,c \le 100$,同时保证,只会出现操作$`1,2,3$`。 数据点$9-11$满足:$1\le k\le m \le 1000, 1\le n \le 5000, 1\le a,b,c \le 1000$,同时保证,只会出现操作$`1,2,3,6$`。 数据点$12-15$保证:只会出现操作$`1,2,3,4,6$`。 数据点$16-20$:没有特别约定。 所有数据均保证:$1\le k\le m \le 1000, 1\le n \le 5000, 1\le |a|,|b|,|c| \le 1000$(也就是说,$a,b,c$可能为负数,但不会为$0$) ## 输出格式 共$n$行。其中,第$i$行表示第$i$个操作的操作结果,可能是$`Succeed$`或者$`FAILED$`。 操作失败的原因可能有: 1. 尝试操作的角色(也就是$a$)不存在 2. 帖子(也就是$b$)不存在 3. 尝试禁言的角色(也就是$c$)不存在 4. 普通用户尝试删除他人的帖子 5. 普通用户尝试禁言他人 6. 普通管理员尝试删除其他管理员的帖子 7. 角色被禁言,导致发帖或者跟帖失败 8. 尝试禁言管理员 9. 尝试再次禁言已经被禁言的角色 10. 尝试再次删除已经被删除的帖子 11. 尝试在已经被删除的帖子下面跟帖 ## 输入 ```in1 10 5 2 2::new_chat 3::new_chat 2::follow::2 2::follow::3 1::delete::2 3::follow::1 1::comment_deny::3 3::follow::1 1::admin_delete::1 1::super_admin_delete::1 ``` ## 输出 ```out1 Succeed FAILED Succeed FAILED Succeed ``` ## 提示