P14467 [COCI 2025/2026 #1] 扔球 / Krugomet
题目背景
本题满分为 $70$。
题目描述
有 $n$ 个人在玩游戏。第 $i$ 个人持有 $a_i$ 个球,她的暗恋对象为第 $s_i$ 个人(可能出现 $s_i=i$)。
进行 $k$ 轮游戏,每轮游戏中,所有人**同时**将自己手上的球抛给自己的暗恋对象,然后接住所有传给自己的球。
编程回答两个问题:
- $k$ 轮后,持有球数量最多的人持有多少个球?
- $k$ 轮后,谁持有的球数量最多?
对于第二问,若有多个答案,**从小到大**依次输出之。
特别地,本题中你可以获得部分分。详见「计分方式」。
输入格式
第一行,两个正整数 $n,k$($1\le n\le 10^5$,$1\le k\le 10^9$)。
第二行,$n$ 个正整数 $a_i$($1\le a_i\le 10^3$)。
第三行,$n$ 个正整数 $s_i$($1\le s_i\le n$)。
输出格式
第一行,输出一个正整数:持有球数量最多的人持有的球数。
第二行,输出持有球数量最多的人,按照编号**从小到大**排序。
说明/提示
### 样例解释
**样例一解释**:在第一轮游戏中,俩人互相把球抛给对方,也就是「交换」了各自拥有的球的数量。所以,第一轮游戏后,$1$ 持有最多的球($6$ 个球)。
### 子任务
- $\text{Subtask 1 (14 pts)}$:$n,k\le 10^3$。
- $\text{Subtask 2 (26 pts)}$:$s_i$ 是一个排列。换言之,若 $1\le i\lt j\leq n$,则 $s_i\neq s_j$。
- $\text{Subtask 3 (30 pts)}$:无额外限制。
### 计分方式
正确回答第一问可以获得 $50\%$ 的分数。
类似地,正确回答第二问可以获得 $50\%$ 的分数。