QOJ.ac

QOJ

Limite de temps : 2 s Limite de mémoire : 256 MB Points totaux : 100 Hackable ✓

#14969. Nene vs. Monsters (Easy Version)

Statistiques

これはこの問題の簡単バージョンです。このバージョンと通常バージョンの唯一の違いは $a_i$ の制約です。両方のバージョンを解いた場合にのみハックを行うことができます。

Nene は円状に配置された $n$ 体のモンスターと戦っています。これらのモンスターには $1$ から $n$ までの番号が振られており、$i$ 番目 ($1 \le i \le n$) のモンスターの現在のエネルギーレベルは $a_i$ です。

モンスターは非常に強力であるため、Nene は「隣人を攻撃せよ (Attack Your Neighbour)」という呪文を使って戦うことにしました。Nene がこの呪文を使うと、以下の行動が順番に一つずつ発生します。

  • $1$ 番目のモンスターが $2$ 番目のモンスターを攻撃する。
  • $2$ 番目のモンスターが $3$ 番目のモンスターを攻撃する。
  • ...
  • $(n-1)$ 番目のモンスターが $n$ 番目のモンスターを攻撃する。
  • $n$ 番目のモンスターが $1$ 番目のモンスターを攻撃する。

エネルギーレベル $x$ のモンスターがエネルギーレベル $y$ のモンスターを攻撃すると、防御側のモンスターのエネルギーレベルは $\max(0, y-x)$ になります(攻撃側のモンスターのエネルギーレベルは $x$ のまま変化しません)。

Nene はこの呪文を $10^{100}$ 回使用し、その後もエネルギーレベルがゼロではないモンスターを自分で処理する予定です。この呪文を $10^{100}$ 回使用した後にエネルギーレベルがゼロではないモンスターがどれであるかを特定してください。

入力

各テストケースには複数のテストが含まれます。最初の行にはテストケースの数 $t$ ($1 \le t \le 10^4$) が含まれます。続いて各テストケースの説明が続きます。

各テストケースの最初の行には、モンスターの数 $n$ ($2 \le n \le 2 \cdot 10^5$) が含まれます。

2 行目には、$n$ 個の整数 $a_1, a_2, \ldots, a_n$ ($0 \le a_i \le 2 \cdot 10^5$) が含まれます。これはモンスターの現在のエネルギーレベルです。

すべてのテストケースにおける $n$ の合計は $2 \cdot 10^5$ を超えないことが保証されています。

出力

各テストケースについて、

  • 1 行目に、呪文を $10^{100}$ 回使用した後にエネルギーレベルがゼロではないモンスターの数 $m$ を出力してください。
  • 2 行目に、$m$ 個の整数 $i_1, i_2, \ldots, i_m$ ($1 \le i_1 < i_2 < \ldots < i_m \le 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 回目の「隣人を攻撃せよ」の呪文を使用する。
  • $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 が 2 回目の「隣人を攻撃せよ」の呪文を使用する。
  • $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 が 3 回目の「隣人を攻撃せよ」の呪文を使用する。
  • $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$ 番目のモンスターのみです。

2 番目のテストケースでは、両方のモンスターが最初からエネルギーレベル 0 を持っています。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.