题目描述
题目描述
一次历史考试要求学生按照发生时间为若干历史事件排序。全部排对的学生可以得到满分,但对于没有全部排对的学生,应当怎样给分呢?
可以考虑两种方法:
- 每个排名完全正确的事件计 分。
- 在学生给出的事件顺序中,选出尽可能多的事件,使这些事件之间的先后关系与正确顺序一致;选出的事件不要求连续,每个事件计 分。
例如,正确顺序为 1 2 3 4,学生给出的顺序为 1 3 2 4。第一种方法得 分;第二种方法可以选出 1 2 4 或 1 3 4,得到 分。
本题使用第二种方法。请计算每位学生的得分。
特别注意:输入给出的是每个事件的排名,不是按时间排列的事件编号。 对于输入序列 , 表示事件 的正确排名;对于学生序列 , 表示该学生认为事件 应处在第几位。
输入格式
输入包含一组或多组考试数据,读到文件结束为止,不给出数据组数。
每组数据的第一行只有一个整数 ,表示历史事件的数量,事件编号为 到 。
第二行包含 个整数 ,表示各事件的正确排名。
随后若干行,每行包含 个整数 ,表示一位学生给出的排名。每个排名序列中, 到 各出现一次。
当读到下一行只有一个整数时,表示下一组考试数据开始;否则当前行是一位学生的答案。
输出格式
按照输入顺序,为每位学生输出一行,包含一个整数,表示该学生按照第二种方法得到的分数。
不同组考试的数据之间不需要输出空行。
输入样例 #1
4
4 2 3 1
1 3 2 4
3 2 1 4
2 3 4 1
输出样例 #1
1
2
3
样例解释 #1
正确排名 4 2 3 1 对应的事件顺序为 4 2 3 1。第一位学生的排名 1 3 2 4 对应事件顺序 1 3 2 4,两者能够保持相对顺序一致的最长事件序列长度为 1。其余两位学生的得分分别为 2 和 3。
输入样例 #2
5
1 2 3 4 5
1 2 3 4 5
5 4 3 2 1
输出样例 #2
5
1
输入样例 #3
3
2 3 1
2 3 1
1 2 3
4
1 2 3 4
2 1 4 3
输出样例 #3
3
2
2
样例解释 #3
前四行属于第一组考试,后面三行属于第二组考试。只为学生答案输出得分,不为正确排名那一行输出。
数据范围
。
,每个排名序列都是 到 的一个排列。
输入可能包含多组考试数据,每组可能有多位学生。