CF1237D.Balanced Playlist
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:512MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Your favorite music streaming platform has formed a perfectly balanced playlist exclusively for you. The playlist consists of n tracks numbered from 1 to n. The playlist is automatic and cyclic: whenever track i finishes playing, track i+1 starts playing automatically; after track n goes track 1.
For each track i, you have estimated its coolness ai. The higher ai is, the cooler track i is.
Every morning, you choose a track. The playlist then starts playing from this track in its usual cyclic fashion. At any moment, you remember the maximum coolness x of already played tracks. Once you hear that a track with coolness strictly less than 2x (no rounding) starts playing, you turn off the music immediately to keep yourself in a good mood.
For each track i, find out how many tracks you will listen to before turning off the music if you start your morning with track i, or determine that you will never turn the music off. Note that if you listen to the same track several times, every time must be counted.
你最喜爱的音乐流媒体平台为你精心打造了一个完全平衡的播放列表。该播放列表包含 n 首编号为 1 到 n 的歌曲。播放列表是自动且循环的:每当第 i 首歌曲播放完毕,第 i+1 首歌曲便会自动开始播放;在第 n 首歌曲之后,将再次播放第 1 首歌曲。
对于每首歌曲 i,你已估算出它的“酷度” ai。ai 越大,表示第 i 首歌曲越酷。
每天早晨,你选择一首歌曲作为起点。随后播放列表便从该歌曲开始,按上述循环方式持续播放。在任意时刻,你都会记住已播放过的所有歌曲中的最大酷度 x。一旦你听到一首酷度严格小于 2x(不四舍五入)的歌曲开始播放,你便会立即关闭音乐,以保持好心情。
对每首歌曲 i,请计算:若你从第 i 首歌曲开始一天的播放,你将在关闭音乐前共听到多少首歌曲?若你永远不会关闭音乐,则输出该情况。注意:若同一首歌曲被多次播放,每次均需单独计数。
输入格式
The first line contains a single integer n (2≤n≤105), denoting the number of tracks in the playlist.
The second line contains n integers a1,a2,…,an (1≤ai≤109), denoting coolnesses of the tracks.
第一行包含一个整数 n(2≤n≤105),表示播放列表中音轨的数量。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),表示各音轨的酷炫值。
输出格式
Output n integers c1,c2,…,cn, where ci is either the number of tracks you will listen to if you start listening from track i or −1 if you will be listening to music indefinitely.
输出 n 个整数 c1,c2,…,cn,其中 ci 表示从第 i 首曲目开始收听时,你将收听的曲目数量;若你将无限地收听音乐,则 ci=−1。
输入输出样例
输入#1
4 11 5 2 7
输出#1
1 1 3 2
输入#2
4 3 2 5 3
输出#2
5 4 3 6
输入#3
3 4 3 6
输出#3
-1 -1 -1
说明/提示
In the first example, here is what will happen if you start with...
- track 1: listen to track 1, stop as a2<2a1.
- track 2: listen to track 2, stop as a3<2a2.
- track 3: listen to track 3, listen to track 4, listen to track 1, stop as a2<2max(a3,a4,a1).
- track 4: listen to track 4, listen to track 1, stop as a2<2max(a4,a1).
In the second example, if you start with track 4, you will listen to track 4, listen to track 1, listen to track 2, listen to track 3, listen to track 4 again, listen to track 1 again, and stop as a2<2max(a4,a1,a2,a3,a4,a1). Note that both track 1 and track 4 are counted twice towards the result.
在第一个例子中,若从以下曲目开始,将发生如下情况:
- 曲目 1:收听曲目 1,然后停止,因为 a2<2a1。
- 曲目 2:收听曲目 2,然后停止,因为 a3<2a2。
- 曲目 3:收听曲目 3,接着收听曲目 4,再收听曲目 1,然后停止,因为 a2<2max(a3,a4,a1)。
- 曲目 4:收听曲目 4,接着收听曲目 1,然后停止,因为 a2<2max(a4,a1)。
在第二个例子中,若从曲目 4 开始,你将依次收听曲目 4、曲目 1、曲目 2、曲目 3、曲目 4(再次)、曲目 1(再次),然后停止,因为 a2<2max(a4,a1,a2,a3,a4,a1)。注意,曲目 1 和曲目 4 在结果中均被计数两次。
输入解题思路,AI测评打分。不知道怎么写?