CF1237D Balanced Playlist

题目描述

您最爱的音乐平台 Imakf 为您专门推出了一份完美平衡的歌单,共 $n$ 首曲子,编号从 $1$ 到 $n$。您听歌是列表循环的,所以说您听完第 $i$ 首歌后,下一首会播放第 $i + 1$ 首歌,听完最后一首歌后将会从头播放。 您根据自己的感觉,为每首歌估计了一个 KUN 值,第 $i$ 首歌的 KUN 值是 $a_i$。 每天早上您都会从一首歌开始听,听的过程中,您就会记住您已经听的歌中最大的KUN值是多少,记为 $x$。当您听到一首KUN值严格小于 $\dfrac{x}{2}$ 的歌曲时,您会立刻砸掉播放器,以保持每天的好心情。 久而久之,您就想知道对于每一首歌 $i$ ,如果从它开始听,到停止播放之前一共可以听多少首歌?一首歌如果被重复播放,那每一次都要统计。

输入格式

第一行 $n\,(2\le n \le 10^5)$,表示歌单中的歌曲数量。 第二行共 $n$ 个整数 $a_1,a_2,\cdots,a_n\,(1\le a_i\le 10^9)$,表示每一首歌的 KUN 值。

输出格式

一行共 $n$ 个整数,第 $i$ 个整数表示从第 $i$ 首歌开始听,到停止播放之前一共可以听多少首歌。 **如果可以永远听下去,输出 $-1$。**

说明/提示

#### 样例解释 在第一个样例中,如果你分别从如下歌曲开始听,会发生以下情况: - 歌曲 $1$:收听歌曲 $1$,当 $a_2 < \frac{a_1}{2}$ 时停止。 - 歌曲 $2$:收听歌曲 $2$,当 $a_3 < \frac{a_2}{2}$ 时停止。 - 歌曲 $3$:收听歌曲 $3$,收听歌曲 $4$,收听歌曲 $1$,当 $a_2 < \frac{\max(a_3, a_4, a_1)}{2}$ 时停止。 - 歌曲 $4$:收听歌曲 $4$,收听歌曲 $1$,当 $a_2 < \frac{\max(a_4, a_1)}{2}$ 时停止。 在第二个样例中,如果从歌曲 $4$ 开始,你会收听歌曲 $4$,收听歌曲 $1$,收听歌曲 $2$,收听歌曲 $3$,再次收听歌曲 $4$,再次收听歌曲 $1$,并在 $a_2 < \frac{\max(a_4, a_1, a_2, a_3, a_4, a_1)}{2}$ 时停止。注意,歌曲 $1$ 和歌曲 $4$ 在结果中均被计入了两次。 由 Deepseek V4 翻译。