题目 20400

扔球

查看题解 ↗GitHub ↗如何评测
题号
20400
时间限制
1000 ms
内存限制
256 MB
标签
比赛CSP-S
来源
CSP-S 国外模拟赛 30 - T2

第 2 题 扔球 (krugomet)

时间限制 1.0 s · 空间限制 256 MB · 47 个测试点 · 全文比较(过滤行末空格及文末回车)

本题使用文件输入输出:输入文件 krugomet.in,输出文件 krugomet.out。

本题满分为 70。

题目描述

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

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

编程回答两个问题:

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

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

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

输入格式

第一行,两个正整数 n,kn, k(1≤n≤1051 \le n \le 10^5,1≤k≤1091 \le k \le 10^9)。

第二行,nn 个正整数 aia_i(1≤ai≤1031 \le a_i \le 10^3)。

第三行,nn 个正整数 sis_i(1≤si≤n1 \le s_i \le n)。

输出格式

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

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

样例

样例 1

输入:

文本
2 1
5 6
2 1

输出:

文本
6
1

样例 2

输入:

文本
4 2
5 5 5 5
1 2 1 1

输出:

文本
15
1

样例 3

输入:

文本
4 10000000
1 2 3 4
2 1 4 3

输出:

文本
4
4

提示

样例解释

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

子任务

  • Subtask 1 (14 pts):n,k≤103n, k \le 10^3。
  • Subtask 2 (26 pts):sis_i 是一个排列。换言之,若 1≤i<j≤n1 \le i < j \le n,则 si≠sjs_i \neq s_j。
  • Subtask 3 (30 pts):无额外限制。

计分方式

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

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

数据下载

题目 20400 的公开数据

正在读取文件列表…

常用命令

题目 20400 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。