SZTG-L-CF1237D. Balanced Playlist

提交1 通过1
通过率100%
时间限制2000ms
内存限制500MiB

题目描述

题目描述

您最爱的音乐平台 Imakf 为您专门推出了一份完美平衡的歌单,共 nn 首曲子,编号从 11 到 nn。您听歌是列表循环的,所以说您听完第 ii 首歌后,下一首会播放第 i+1i + 1 首歌,听完最后一首歌后将会从头播放。

您根据自己的感觉,为每首歌估计了一个 KUN 值,第 ii 首歌的 KUN 值是 aia_i。

每天早上您都会从一首歌开始听,听的过程中,您就会记住您已经听的歌中最大的KUN值是多少,记为 xx。当您听到一首KUN值严格小于 x2\dfrac{x}{2} 的歌曲时,您会立刻砸掉播放器,以保持每天的好心情。

久而久之,您就想知道对于每一首歌 ii ,如果从它开始听,到停止播放之前一共可以听多少首歌?一首歌如果被重复播放,那每一次都要统计。

输入格式

第一行 n n\,,表示歌单中的歌曲数量。

第二行共 nn 个整数 a1,a2,⋯ ,an a_1,a_2,\cdots,a_n\,,表示每一首歌的 KUN 值。

输出格式

一行共 nn 个整数,第 ii 个整数表示从第 ii 首歌开始听,到停止播放之前一共可以听多少首歌。

如果可以永远听下去,输出 −1-1。

4
11 5 2 7
1 1 3 2
4
3 2 5 3
5 4 3 6
3
4 3 6
-1 -1 -1

说明 / 提示

样例解释

在第一个样例中,如果你分别从如下歌曲开始听,会发生以下情况:

  • 歌曲 11:收听歌曲 11,当 a2<a12a_2 < \frac{a_1}{2} 时停止。
  • 歌曲 22:收听歌曲 22,当 a3<a22a_3 < \frac{a_2}{2} 时停止。
  • 歌曲 33:收听歌曲 33,收听歌曲 44,收听歌曲 11,当 a2<max⁡(a3,a4,a1)2a_2 < \frac{\max(a_3, a_4, a_1)}{2} 时停止。
  • 歌曲 44:收听歌曲 44,收听歌曲 11,当 a2<max⁡(a4,a1)2a_2 < \frac{\max(a_4, a_1)}{2} 时停止。

在第二个样例中,如果从歌曲 44 开始,你会收听歌曲 44,收听歌曲 11,收听歌曲 22,收听歌曲 33,再次收听歌曲 44,再次收听歌曲 11,并在 a2<max⁡(a4,a1,a2,a3,a4,a1)2a_2 < \frac{\max(a_4, a_1, a_2, a_3, a_4, a_1)}{2} 时停止。注意,歌曲 11 和歌曲 44 在结果中均被计入了两次。

由 Deepseek V4 翻译。

数据范围

(2≤n≤105)(2\le n \le 10^5)

(1≤ai≤109)(1\le a_i\le 10^9)