U632547 【模板】判圈

题目背景

![](https://cdn.luogu.com.cn/upload/image_hosting/zzeyq7lp.png) 作为一个铁佛寺,你看着你心爱的红色马戏团疯狂的陷入 `We are done!` 和 `We are back!` 的无限循环当中。 一觉醒来,你发现你成为了瓦嗨,你决定要改变这一切。 这一切的起源肯定是循环(~~`Must Be The Cycle`~~),所以你决定先解决循环的问题。

题目描述

给定一个函数 $f(x)$ 和起始值 $x0$,生成序列: $$x0, f(x0), f(f(x0)), f(f(f(x0))), ...$$ 请你找出: 1. 序列是否进入循环 2. 循环的起点值 3. 循环的长度 **注意**:如果输入值不在映射中,函数返回 $(a × a + 1) \% (10^9 + 7)$。

输入格式

- 第一行:整数 $x0$(起始值)。 - 第二行:整数 $n$(函数映射的数量)。 - 接下来 $n$ 行:每行两个整数 $a$,$b$,表示 $f(a) = b$。

输出格式

- 如果找到循环:输出 `循环起点` 和 `循环长度` - 如果没找到循环:输出 `NO CYCLE!FORZA FERRARI!`。

说明/提示

**解释**:序列是 $0→1→2→3→4→2→3→4→2...$ 循环从 $2$ 开始:$2→3→4→2$,长度为 $3$。 $0 ≤ x0, a, b ≤ 10^6,1≤n ≤ 10^6$。 ------------ 后记: 你仔细观察就会发现,永远没有无环的情况。 说明法拉利的这种循环永远无法打破,而`Forza Ferrari`只是法拉利双退前幻想罢了。