AT_joi2025_yo2_b.ビリヤード (Billiards)
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
比太郎正在玩台球。在 JOI 国的台球游戏中,会使用放置在台面上的 N 个球,标号为 1,2,…,N。台面上设有用来将球打入的洞。被打入洞中的球不会回到台面上,也不能再次被打入。比太郎的目标是尽可能打入洞中的球中编号最大者。
击球是一项需要集中注意力的工作。起初,比太郎的集中力为 X,将第 i 个球打入洞中会消耗 Ai 的集中力。当比太郎的集中力小于 Ai 时,他不能将第 i 个球打入洞中。
此外,在本台球规则下,对于打球的顺序也有规定。具体来说,当 Pi=−1(1≤i≤N)时,第 i 个球可以在任何时候被打入;当 Pi=−1 时,要打入第 i 个球,必须先将第 Pi 个球打入洞中。
给定比太郎的集中力和每个球的信息,请判断他能否打球,并在可以打球的情况下求出他能够打入洞中的球的最大编号。如果一个球也不能打入洞中,则输出 −1。
输入格式
输入格式如下:
N X A1 A2 … AN P1 P2 … PN
输出格式
输出比太郎能打入洞中的最大球编号,如果一个球也不能打入,则输出 −1。
输入输出样例
输入#1
6 7 1 2 4 3 10 100 -1 -1 -1 -1 -1 -1
输出#1
4
输入#2
5 12 1 2 3 5 8 -1 1 2 3 4
输出#2
4
输入#3
8 10 3 1 4 1 5 9 2 6 -1 1 2 -1 4 4 5 7
输出#3
7
输入#4
2 1000000000000000 1 1 2 1
输出#4
-1
输入#5
9 2468024680 123456789 234567891 345678912 456789123 567891234 678912345 789123456 891234567 912345678 6 5 4 -1 3 2 1 9 8
输出#5
6
说明/提示
子任务
- (6 分)N≤1000,且全部 Pi=−1(1≤i≤N)。
- (9 分)N≤1000,P1=−1,Pi=i−1(2≤i≤N)。
- (16 分)N≤1000,Pi<i(1≤i≤N)。
- (20 分)Pi<i(1≤i≤N)。
- (19 分)N≤1000。
- (30 分)无附加约束。
样例解释 1
起初,比太郎的集中力为 7。
对全部 i(1≤i≤N)都满足 Pi=−1,因此比太郎只要集中力足够,可以任意顺序将球打入洞中。
例如,可以像这样操作,比太郎可以将编号为 4 的球打入洞中:
- 首先,将第 3 个球打入洞中。比太郎的集中力减少 4,剩余 3。
- 然后,将第 4 个球打入洞中。比太郎的集中力减少 3,剩余 0。
此外,比太郎无法将编号为 5 和 6 的球打入洞中。因此,比太郎能打入洞中的球的最大编号为 4。
该输入样例符合子任务 1,3,4,5,6 的约束条件。
样例解释 2
起初,比太郎的集中力为 12。
例如,可以像这样操作,比太郎可以将编号为 4 的球打入洞中:
- 首先,将第 1 个球打入洞中(P1=−1,因此第 1 个球可随时打入)。
- 集中力减少 1,剩余 11。
- 接着,将第 2 个球打入洞中(P2=1,且第 1 个球已打入,因此可以打第 2 个球)。
- 集中力减少 2,剩余 9。
- 再将第 3 个球打入洞中(P3=2,且第 2 个球已打入,因此可以打第 3 个球)。
- 集中力减少 3,剩余 6。
- 最后,将第 4 个球打入洞中(P4=3,且第 3 个球已打入,因此可以打第 4 个球)。
- 集中力减少 5,剩余 1。
比太郎无法将编号为 5 的球打入洞中。因此,比太郎能打入洞中的球的最大编号为 4。
该输入样例符合子任务 2,3,4,5,6 的约束条件。
样例解释 3
该输入样例符合子任务 3,4,5,6 的约束条件。
样例解释 4
由于 P1=2,要打入第 1 个球,必须先打第 2 个球;同理,P2=1,要打入第 2 个球,必须先打第 1 个球。由此,比太郎无法打入任何球。因此,输出 −1。
该输入样例符合子任务 5,6 的约束条件。
样例解释 5
该输入样例符合子任务 5,6 的约束条件。
数据范围与约定
- 1≤N≤200000。
- 1≤X≤1015。
- 1≤Ai≤109(1≤i≤N)。
- 1≤Pi≤N 或 Pi=−1(1≤i≤N)。
- Pi=i(1≤i≤N)。
- 所有输入均为整数。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?