s = input().split() # 球队个数 n = int(s[0]) # 第一场 t = int(s[1]) # 定义队列a a = [0] * (n + 1) a[1] = t # 队伍从1号开始 # 生成之后的数值 for i in range(2, n + 1): a[i] = ((a[i - 1] * 3703 + 1047) % n) + 1 # 定义记录获胜队伍得分数组 score = [0] * (n + 1) # 要看连续几次,第一场 score[a[1]] += 1 # 第2场 if a[2] == a[1]: score[a[2]] += 2 else: score[a[2]] += 1 # 场次 i场次 a[i]第i场获胜的队伍编号 score[a[i]]获胜队伍的得分 for i in range(3, n + 1): if a[i] == a[i - 1] and a[i] == a[i - 2]: score[a[i]] += 3 elif a[i] == a[i - 1]: score[a[i]] += 2 else: score[a[i]] += 1 print(max(score)) /************************************************************** Problem: 1559 User: admin Language: Python Result: Accepted Time:518 ms Memory:34480 kb ****************************************************************/