#B4510. [语言月赛 202603] 选课
[语言月赛 202603] 选课
题目背景
错过比赛可以在入门赛结束后继续参加语言月赛同步赛,【赛后补题】也请从同步赛中进入:https://www.luogu.com.cn/contest/316039
题目描述
小 R 的大学中共有 门课程,编号为 。第 门课程有 门先修课,编号分别为 。
每门课程都有三种可能的状态:未选、通过、挂科。初始时所有课程均为“未选”状态。
小 R 每次可以选择任意多门课程学习,但是必须满足以下条件:
- 被选择的每门课程的所有先修课程必须为“通过”状态;
- 被选择的每门课程必须为“未选”或“挂科”状态。
在一门课程结束后,若她的考试成绩大于等于 分,则该课程状态变成“通过”;否则该课程状态变成“挂科”。
现在依次给出 次询问,每次询问给出小 R 选择的所有课程编号以及每门课程的考试成绩。请你先判断她选择的课程是否符合上述两个条件,若符合条件,再更新所选课程的状态。若她的选择不符合条件,无论输入的考试成绩为何值,都不更新课程状态。
保证先修课关系不会成环。也就是说,存在一种选课顺序,使得小 R 可以通过所有课程。
输入格式
第一行两个整数 ,表示课程数量和询问次数。
接下来 行,第 行的第一个整数 表示第 门课的先修课数量,接下来 个整数 表示第 门课的所有先修课编号。
接下来 行,每行描述一次询问。第一个整数 表示选择的课程数量,接下来 个整数 表示她选择的课程编号,接下来 个整数 表示她在对应课程的考试成绩。
输出格式
共 行,依次回答所有询问,格式如下:
- 若小 R 的选择不符合条件,输出
Error。 - 若小 R 的选择符合条件,输出一个长度为 的字符串。若第 门课程状态变更为“考试已通过”,则第 个字符为
P,否则第 个字符为F。
4 4
1 2
0
1 2
2 1 3
3 1 3 2 87 51 92
1 2 79
2 1 3 48 97
1 4 80
Error
P
FP
Error
4 4
0
0
0
0
2 1 3 76 48
3 1 2 4 93 27 64
1 3 59
2 3 4 80 90
PF
Error
F
PP
4 4
1 3
1 3
0
1 1
1 3 100
2 2 3 100 100
2 2 4 100 100
2 2 1 100 100
P
Error
Error
PP
提示
样例解释 #1
第一次询问中,课程 是选择的课程 的先修课,且处于“未选”状态,不符合条件一。
第二次询问中,课程 的成绩为 ,状态变成“通过”。
第三次询问中,课程 的成绩为 ,状态变成“挂科”,课程 的成绩为 ,状态变成“通过”。
第四次询问中,课程 是选择的课程 的先修课,且处于“挂科”状态,不符合条件一。
样例解释 #2
第一次询问中,课程 的成绩为 ,状态变成“通过”,课程 的成绩为 ,状态变成“挂科”。
第二次询问中,选择的课程 状态为“通过”,不符合条件二。
第三次询问中,课程 的成绩为 ,状态变成“挂科”。
第四次询问中,课程 的成绩为 ,状态变成“通过”,课程 的成绩为 ,状态变成“通过”。
本样例满足测试点 的限制。
样例解释 #3
本样例满足测试点 的限制。
数据范围
对于全部数据:
- ;
- ,(,);
- 每次询问满足 ,,();
- 保证同一门课的先修课两两不同,且先修课关系不会成环;
- 保证同一次询问中小 R 选的课两两不同。
部分分:
- 对于测试点 (共 分),。
- 对于测试点 (共 分),()。
- 对于测试点 (共 分),每次询问满足 ()。
- 对于测试点 (共 分),每次询问满足 。
- 对于测试点 (共 分),无特殊限制。