CF159A Friends or Not
题目描述
Polycarpus 有一个爱好——他开发了一个不同寻常的社交网络。他的工作几乎已经完成,只剩下最后一个模块——判断好友关系的模块。哦对了,在这个社交网络中无需手动添加好友!好友配对方式如下:假设用户 $A$ 在时间 $t_1$ 给用户 $B$ 发送了一条消息,用户 $B$ 在时间 $t_2$ 给用户 $A$ 发送了一条消息。如果 $0 < t_2 - t_1 \leq d$,则认为用户 $B$ 的消息是对用户 $A$ 消息的回复。如果 $A$ 回答了 $B$ 的至少一条消息或者 $B$ 回答了 $A$ 的至少一条消息,则认为 $A$ 和 $B$ 是好友。
现在给出按时间顺序排列的消息日志以及一个整数 $d$。请找出所有会被识别为好友的用户对。
输入格式
第一行包含两个整数 $n$ 和 $d$($1 \leq n, d \leq 1000$)。接下来的 $n$ 行给出消息日志,第 $i$ 行格式为 "$A_i$ $B_i$ $t_i$",表示用户 $A_i$ 在时刻 $t_i$ 给用户 $B_i$ 发送了一条消息($1 \leq i \leq n$)。$A_i$ 和 $B_i$ 均为不超过 $20$ 个字符的非空小写字母字符串,$t_i$ 是整数($0 \leq t_i \leq 10000$)。保证日志按 $t_i$ 非递减顺序给出,且不存在用户给自己发消息的情况。日志每行的各元素由单个空格分隔。
输出格式
第一行输出一个整数 $k$,表示好友对的数量。接下来的 $k$ 行,每行输出一对好友,格式为 "$A_i$ $B_i$"。你可以以任意顺序输出好友对和用户顺序,每一对只输出一次。
说明/提示
在第一个样例测试中,Vasya 和 Petya 成为好友,因为他们的消息发送时间只相差一秒。而 Anya 和 Ivan 不是好友,因为他们消息发送时间相差超过一秒。
由 ChatGPT 5 翻译