QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 2048 MB 満点: 100

#2479. 救援任务

統計

“罪犯解放粗暴小队”(Criminal Liberating Rough Squad,简称 CLRS)计划袭击一列正穿过沙漠前往另一座监狱的囚犯押运列车,并解救其中的部分囚犯。

CLRS 拥有 10 辆卡车,用于将解救出的罪犯从袭击地点运送到临时机场,飞机已经在那里加好油,准备将罪犯送往国外。

在袭击现场,CLRS 会闯入一节火车车厢,制服车厢守卫,解救该车厢内的所有囚犯,然后移动到下一节车厢。小队将从第一节被袭击的车厢开始,向列车尾部推进,逐一解救各车厢内的罪犯。CLRS 自豪地宣称,他们将解救并装载任何他们袭击的车厢内的所有罪犯。CLRS 在列车上只朝一个方向移动,绝不回头。

奇怪的是,当卡车离开现场时,所有卡车上装载的获救罪犯人数必须完全相同。这是 CLRS 的一项古老安全迷信,在任何此类行动中都绝对不能打破。

但也有坏消息。警察很可能就在附近巡逻,因此在最初的袭击之后,必须尽快离开现场。也就是说,一旦满足上述迷信规则,就必须立即离开。

任务也可能无法完成。例如,如果 CLRS 在离列车尾部太近的车厢开始袭击,就可能无法完成任务。

现在,一切都必须仔细规划。CLRS 事先知道每节车厢中押运的罪犯人数。他们想知道,对于列车上的每一节车厢,如果从该车厢开始袭击,他们需要袭击多少节车厢。

输入格式

第一行包含一个整数 $N$ ($1 \le N \le 10^5$),表示列车上的车厢数量。第二行包含 $N$ 个介于 0 到 9(含)之间的数值,表示每节车厢中押运的罪犯人数。这些数值按列车从第一节到最后一节的顺序排列。

输出格式

输出由 $N$ 个数字组成的序列,其中第 $k$ 个值表示从第 $k$ 节车厢开始袭击时所袭击的车厢总数。如果从第 $k$ 节车厢开始无法完成任务,则序列中对应的值为 $-1$。

样例

输入 1

5
0 2 4 6 8

输出 1

1 4 2 -1 -1

输入 2

5
5 5 5 0 5

输出 2

2 2 3 1 -1

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.