在排列中寻找具有最大和的循环
Python
Hard
loops
任务 «在排列中寻找具有最大和的循环»
给定一个从1到N的数字排列。考虑一个有向图,其中每个顶点i都有一条指向a[i]的边。请找出该图中元素之和最大的环。如果有多个这样的环,输出任意一个。保证N ≥ 2。环定义为一系列不同的顶点,其中每个下一个顶点按规则得到:下一个 = a[当前],并且最后一个顶点通过边返回到第一个顶点。
输入格式
第一行包含一个整数 N (2 ≤ N ≤ 10^5)。第二行包含 N 个整数 a[1], a[2], ..., a[N] —— 这是从 1 到 N 的一个排列。
输出格式
输出两个数字:循环的长度和循环元素的总和。然后在下一行输出循环遍历的元素,从任意一个元素开始。
示例
示例 1
输入
5
2 3 1 5 4
输出
2 9
4 5
示例 2
输入
7
1 2 3 4 5 6 7
输出
1 7
7
示例 3
输入
4
abc
cde
xyz
zab
输出
Invalid input
示例 4
输入
4
2 1 4 3
输出
2 7
3 4
示例 5
输入
3
1 0 2
输出
1 1
1
main.py