CF75B.Facetook Priority Wall
普及/提高-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Facetook is a well known social network website, and it will launch a new feature called Facetook Priority Wall. This feature will sort all posts from your friends according to the priority factor (it will be described).
This priority factor will be affected by three types of actions:
- 1. "X posted on Y's wall" (15 points),
- 2. "X commented on Y's post" (10 points),
- 3. "X likes Y's post" (5 points).
X and Y will be two distinct names. And each action will increase the priority factor between X and Y (and vice versa) by the above value of points (the priority factor between X and Y is the same as the priority factor between Y and X).
You will be given n actions with the above format (without the action number and the number of points), and you have to print all the distinct names in these actions sorted according to the priority factor with you.
Facetook 是一个知名社交网络网站,它将推出一项名为“Facetook 优先级动态消息墙”的新功能。该功能将根据优先级因子(下文将描述)对您好友的所有动态消息进行排序。
该优先级因子受以下三类操作影响:
-
- “X 在 Y 的动态消息墙上发布内容”(15 分),
-
- “X 评论了 Y 的动态消息”(10 分),
-
- “X 点赞了 Y 的动态消息”(5 分)。
其中 X 和 Y 为两个不同的名字。每次操作均会使 X 与 Y 之间的优先级因子(双向对称,即 X 与 Y 之间的优先级因子等于 Y 与 X 之间的优先级因子)增加对应分值。
您将收到 n 条符合上述格式(不含操作编号及分值)的操作记录,要求输出所有在这些操作中出现的不同姓名,并按照它们与您本人之间的优先级因子降序排列。
输入格式
The first line contains your name. The second line contains an integer n, which is the number of actions (1 ≤ n ≤ 100). Then n lines follow, it is guaranteed that each one contains exactly 1 action in the format given above. There is exactly one space between each two words in a line, and there are no extra spaces. All the letters are lowercase. All names in the input will consist of at least 1 letter and at most 10 small Latin letters.
第一行包含你的姓名。第二行包含一个整数 n,表示操作的数量(1 ≤ n ≤ 100)。随后是 n 行,保证每行恰好包含一个如上所述格式的操作。每行中,单词之间恰好有一个空格,且无额外空格。所有字母均为小写。输入中的所有姓名均由至少 1 个、至多 10 个小写拉丁字母组成。
输出格式
Print m lines, where m is the number of distinct names in the input (excluding yourself). Each line should contain just 1 name. The names should be sorted according to the priority factor with you in the descending order (the highest priority factor should come first). If two or more names have the same priority factor, print them in the alphabetical (lexicographical) order.
Note, that you should output all the names that are present in the input data (excluding yourself), even if that person has a zero priority factor.
The lexicographical comparison is performed by the standard "<" operator in modern programming languages. The line a is lexicographically smaller than the line b, if either a is the prefix of b, or if exists such an i (1 ≤ i ≤ min(|a|, |b|)), that a__i < b__i, and for any j (1 ≤ j < i) a__j = b__j, where |a| and |b| stand for the lengths of strings a and b correspondently.
输出 m 行,其中 m 为输入中不同姓名的数量(不包含你自己)。每行仅包含一个姓名。这些姓名应按照优先级因子(以你为基准)降序排列(即优先级因子最高的排在最前面)。若两个或多个姓名的优先级因子相同,则按字典序(字母序)升序输出。
注意:你需要输出输入数据中出现的所有姓名(不包含你自己),即使某人的优先级因子为零,也必须输出。
字典序比较由现代编程语言中的标准 < 运算符实现。字符串 a 的字典序小于字符串 b,当且仅当以下任一条件成立:
- a 是 b 的前缀;
- 或存在某个下标 i(满足 1 ≤ i ≤ min(∣a∣, ∣b∣)),使得 ai < bi,且对任意 j(满足 1 ≤ j < i),均有 aj = bj;
其中 ∣a∣ 和 ∣b∣ 分别表示字符串 a 和 b 的长度。
输入输出样例
输入#1
ahmed 3 ahmed posted on fatma's wall fatma commented on ahmed's post mona likes ahmed's post
输出#1
fatma mona
输入#2
aba 1 likes likes posted's post
输出#2
likes posted
输入解题思路,AI测评打分。不知道怎么写?