python有向图的环问题

描述
如果有这么三个人a,b,c,并且a爱上b,b爱上c,c爱上a这样一个循环,那么我们就把这种包含三个人的循环定义为“奇怪的循环”。我们给出一群人的爱慕关系,目标是找出这些爱慕关系中有多少这种狗血的“奇怪的循环”。

输入
输入共包括n+1行,第一行为正整数n,下面紧跟n行;
每行包括两个名字A,B并用空格隔开,表示A爱上了B
(输入数据保证一个人只爱另外一个人,不存在一个人爱多个人的情况)

输出
输出一个整数,共包含多少个“奇怪的循环”。

样例输入
4
Alice Bob
Bob Carol
Carol Alice
Syf None

样例输出
1

提示
样例中Alice,Bob,Carol就是这么一个循环

这个题目,有点意思
有没有更多的测试样例?

val_n = int(input())
val_dict = {}
for i in range(val_n):
    val_input = input().split(" ")
    if len(val_input)==2:
        val_dict[val_input[0]] = val_input[1]

# print(val_dict)
val_dict_len = len(val_dict)
val_circle_lst = []
for k,v in val_dict.items():
    p1 = k
    p2 = v
    val_p_list = [p1,p2]
    for i in range(val_dict_len-1):
        if p2 in val_dict:
            p2 = val_dict[p2]
        else:
            break
        if p2 == p1:
            # 判断是否有重复的图
            temp1 = val_p_list.copy()
            temp1.sort()
            if temp1 not in val_circle_lst:
                # 不重复,记录
                # print(val_p_list)
                val_circle_lst.append(temp1)
            break
        else:
            val_p_list.append(p2)

print(len(val_circle_lst))