CF1968D.Permutation Game
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Bodya 和 Sasha 找到了一组排列 p1,…,pn 和一个数组 a1,…,an。他们决定玩一个著名的“排列游戏”。
长度为 n 的排列是一个包含 n 个 1 到 n 的不同整数的数组,顺序任意。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是排列(2 在数组中出现了两次),[1,3,4] 也不是排列(n=3 但数组中有 4)。
他们两人都选择了一个排列中的起始位置。
游戏持续 k 回合。两位玩家同时进行操作。每一回合,每位玩家会发生两件事:
- 如果玩家当前位置为 x,他的得分增加 ax。
- 然后,玩家可以选择留在当前位置 x,或者从 x 移动到 px。
在恰好 k 回合后,得分更高的玩家获胜。已知 Bodya 的起始位置为 PB,Sasha 的起始位置为 PS,请判断如果两位玩家都采取最优策略,谁会获胜。
输入格式
第一行包含一个整数 t(1≤t≤104)——表示测试用例的数量。
每个测试用例的第一行包含四个整数 n、k、PB、PS(1≤PB,PS≤n≤2⋅105,1≤k≤109)——排列的长度、游戏持续的回合数、两位玩家的起始位置。
接下来一行包含 n 个整数 p1,…,pn(1≤pi≤n)——排列 p 的元素。
再下一行包含 n 个整数 a1,…,an(1≤ai≤109)——数组 a 的元素。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每个测试用例,输出一行:
- 如果 Bodya 获胜,输出 "Bodya";
- 如果 Sasha 获胜,输出 "Sasha";
- 如果两人得分相同,输出 "Draw"。
输入输出样例
输入#1
10 4 2 3 2 4 1 2 3 7 2 5 6 10 8 2 10 3 1 4 5 2 7 8 10 6 9 5 10 5 1 3 7 10 15 4 3 2 1000000000 1 2 1 2 4 4 8 10 4 1 5 1 4 3 2 8 6 7 1 1 2 1 2 100 101 102 5 1 2 5 1 2 4 5 3 4 6 9 4 2 4 2 3 1 4 1 3 2 6 8 5 3 6 9 5 4 6 1 3 5 2 4 6 9 8 9 5 10 4 8 4 2 2 3 4 1 5 2 8 7 4 2 3 1 4 1 3 2 6 8 5 3 2 1000000000 1 2 1 2 1000000000 2
输出#1
Bodya Sasha Draw Draw Bodya Sasha Sasha Sasha Sasha Bodya
说明/提示
下面是第一个测试用例的解释,其中游戏持续 k=2 回合。
| 回合 | Bodya 位置 | Bodya 得分 | Bodya 操作 | Sasha 位置 | Sasha 得分 | Sasha 操作 |
|---|---|---|---|---|---|---|
| 第一回合 | 3 | 0+a3=0+5=5 | 留在原地 | 2 | 0+a2=0+2=2 | 移动到 p2=1 |
| 第二回合 | 3 | 5+a3=5+5=10 | 留在原地 | 1 | 2+a1=2+7=9 | 留在原地 |
| 最终结果 | 3 | 10 | 1 | 9 |
可以看到,Bodya 的得分更高,因此他赢得了比赛。可以证明,Bodya 总是可以赢得这场比赛。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?