CF1956E1.Nene vs. Monsters (Easy Version)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的简单版本。两个版本的区别仅在于 ai 的约束条件。只有当你同时解决了两个版本的问题时,才能进行 hack。
Nene 正在与 n 个怪物战斗,这些怪物围成一圈。这些怪物从 1 到 n 编号,第 i 个(1≤i≤n)怪物当前的能量值为 ai。
由于怪物们太强大,Nene 决定使用“攻击你的邻居”法术与它们战斗。当 Nene 施放该法术时,依次发生以下操作:
- 第 1 个怪物攻击第 2 个怪物;
- 第 2 个怪物攻击第 3 个怪物;
- …
- 第 (n−1) 个怪物攻击第 n 个怪物;
- 第 n 个怪物攻击第 1 个怪物。
当能量值为 x 的怪物攻击能量值为 y 的怪物时,被攻击怪物的能量值变为 max(0,y−x)(攻击者的能量值仍为 x)。
Nene 打算将这个法术施放 10100 次,然后亲自对付那些能量值仍不为零的怪物。她希望你帮她确定,在施放该法术 10100 次后,哪些怪物的能量值仍不为零。
输入格式
每个测试包含多个测试用例。第一行包含测试用例数 t(1≤t≤104)。接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 n(2≤n≤2⋅105),表示怪物的数量。
第二行包含 n 个整数 a1,a2,…,an(0≤ai≤2⋅105),表示每个怪物当前的能量值。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
对于每个测试用例:
- 第一行输出一个整数 m,表示施放 10100 次法术后能量值仍不为零的怪物数量;
- 第二行输出 m 个递增的整数 i1,i2,…,im(1≤i1<i2<…<im≤n),表示这些怪物的编号。
如果 m=0,你可以输出一个空行,也可以不输出该行。
输入输出样例
输入#1
5 3 2 5 3 2 0 0 4 1 5 7 2 4 4 2 1 2 13 1 1 4 5 1 4 1 9 1 9 8 1 0
输出#1
1 1 0 1 1 2 1 3 6 1 3 6 8 10 12
说明/提示
在第一个测试用例中,前 3 次施放法术时会发生如下操作:
- Nene 第一次施放“攻击你的邻居”法术;
- 第 1 个怪物攻击第 2 个怪物,攻击后第 2 个怪物的能量变为 max(0,5−2)=3;
- 第 2 个怪物攻击第 3 个怪物,攻击后第 3 个怪物的能量变为 max(0,3−3)=0;
- 第 3 个怪物攻击第 1 个怪物,攻击后第 1 个怪物的能量变为 max(0,2−0)=2;
- Nene 第二次施放法术;
- 第 1 个怪物攻击第 2 个怪物,攻击后第 2 个怪物的能量变为 max(0,3−2)=1;
- 第 2 个怪物攻击第 3 个怪物,攻击后第 3 个怪物的能量变为 max(0,0−1)=0;
- 第 3 个怪物攻击第 1 个怪物,攻击后第 1 个怪物的能量变为 max(0,2−0)=2;
- Nene 第三次施放法术;
- 第 1 个怪物攻击第 2 个怪物,攻击后第 2 个怪物的能量变为 max(0,1−2)=0;
- 第 2 个怪物攻击第 3 个怪物,攻击后第 3 个怪物的能量变为 max(0,0−0)=0;
- 第 3 个怪物攻击第 1 个怪物,攻击后第 1 个怪物的能量变为 max(0,2−0)=2。
之后每次施放法术,怪物的能量值都不会再发生变化。因此,最后只有第 1 个怪物的能量值不为零。
在第二个测试用例中,两个怪物的初始能量值都为零。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?