#P14467. [COCI 2025/2026 #1] 扔球 / Krugomet

    ID: 14409 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 难度: 6 上传者: 标签>倍增2025Special JudgeCOCI(克罗地亚)

[COCI 2025/2026 #1] 扔球 / Krugomet

题目背景

本题满分为 7070

题目描述

nn 个人在玩游戏。第 ii 个人持有 aia_i 个球,她的暗恋对象为第 sis_i 个人(可能出现 si=is_i=i)。

进行 kk 轮游戏,每轮游戏中,所有人同时将自己手上的球抛给自己的暗恋对象,然后接住所有传给自己的球。

编程回答两个问题:

  • kk 轮后,持有球数量最多的人持有多少个球?
  • kk 轮后,谁持有的球数量最多?

对于第二问,若有多个答案,从小到大依次输出之。

特别地,本题中你可以获得部分分。详见「计分方式」。

输入格式

第一行,两个正整数 n,kn,k1n1051\le n\le 10^51k1091\le k\le 10^9)。

第二行,nn 个正整数 aia_i1ai1031\le a_i\le 10^3)。

第三行,nn 个正整数 sis_i1sin1\le s_i\le n)。

输出格式

第一行,输出一个正整数:持有球数量最多的人持有的球数。

第二行,输出持有球数量最多的人,按照编号从小到大排序。

2 1
5 6
2 1
6
1
4 2
5 5 5 5
1 2 1 1
15
1
4 10000000
1 2 3 4
2 1 4 3
4
4

提示

样例解释

样例一解释:在第一轮游戏中,俩人互相把球抛给对方,也就是「交换」了各自拥有的球的数量。所以,第一轮游戏后,11 持有最多的球(66 个球)。

子任务

  • Subtask 1 (14 pts)\text{Subtask 1 (14 pts)}n,k103n,k\le 10^3
  • Subtask 2 (26 pts)\text{Subtask 2 (26 pts)}sis_i 是一个排列。换言之,若 1i<jn1\le i\lt j\leq n,则 sisjs_i\neq s_j
  • Subtask 3 (30 pts)\text{Subtask 3 (30 pts)}:无额外限制。

计分方式

正确回答第一问可以获得 50%50\% 的分数。

类似地,正确回答第二问可以获得 50%50\% 的分数。