ACM 歌曲边下边听问题

Little Lesha loves listening to music via his smartphone. But the smartphone doesn‘t have much memory, so Lesha listens to his favorite songs in a well-known social network InTalk.

Unfortunately, internet is not that fast in the city of Ekaterinozavodsk and the song takes a lot of time to download. But Lesha is quite impatient. The song‘s duration isT seconds. Lesha downloads the first S seconds of the song and plays it. When the playback reaches the point that has not yet been downloaded, Lesha immediately plays the song from the start (the loaded part of the song stays in his phone, and the download is continued from the same place), and it happens until the song is downloaded completely and Lesha listens to it to the end. Forq seconds of real time the Internet allows you to downloadq - 1 seconds of the track.

Tell Lesha, for how many times he will start the song, including the very first start.

Input

The single line contains three integers T, S, q (2 ≤ q ≤ 104,1 ≤ S < T ≤ 105).

Output

Print a single integer — the number of times the song will be restarted.

Sample test(s)

Input

5 2 2

Output

2

Input

5 4 7

Output

1

Input

6 2 3

Output

1

Note

In the first test, the song is played twice faster than it is downloaded, which means that during four first seconds Lesha reaches the moment that has not been downloaded, and starts the song again. After another two seconds, the song is downloaded completely, and thus, Lesha starts the song twice.

In the second test, the song is almost downloaded, and Lesha will start it only once.

In the third sample test the download finishes and Lesha finishes listening at the same moment. Note that song isn‘t restarted in this case.

解题思路:

题目大意是一个人下载歌,每q个时间单位能下载q-1个时间单位的歌,歌的长度为T,下到S的时候开始播放,如果歌还没下完且放到了还未下载的地方,则重头开始放,问一共要放多少次。一开始从s开始,设下了x秒后听和下的进度相同,假设放到未下载点的时候用时x秒,每秒的下载速度(q-1)/q,x=s+x*(q-1)/q,则x=s*q。解得x= q * s,然后从头开始,设t‘秒后进度相同,则(q - 1) / q * t‘ +x = t‘,解得t‘ = x * q,可见直接拿第一次进度相同的时间乘q就是接下来每次进度相同的时间.

程序代码:

#include <iostream>
using namespace std;
int main()
{
    int t,s,q,n=1;
    cin>>t>>s>>q;
    int x=q*s;
    while(x<t)
    {
        x=q*x;
        n++;
    }
    cout<<n<<endl;
    return 0;
}
时间: 2024-12-12 18:53:47

ACM 歌曲边下边听问题的相关文章

阿里云应用配置管理ACM发布,重新定义云上配置的存放方式

摘要: 9月26日,阿里云宣布应用配置管理ACM产品正式商用,将重新定义云上配置的存放方式. 据了解,该产品具备亿级应用配置处理能力,将分布式架构下的应用配置管理智能化,极大的降低了在微服务.Devops.大数据等场景下配置管理的工作量,并保证云上配置的安全合规,让运维人员和开发者无需担心实时配置过程中产生的人为误操作给用户带去的干扰. 9月26日,阿里云宣布应用配置管理ACM产品正式商用,将重新定义云上配置的存放方式. 据了解,该产品具备亿级应用配置处理能力,将分布式架构下的应用配置管理智能化

做一个微信语音点播系统

最近在做一个微信项目,接触到了微信公众平台.通过公众平台可以很方便的搭建一个功能完善的移动应用.昨天发现:开发者可使用手机号来申请接口测试帐号,体验高级接口. 这篇文章的应用将使用到高级接口中的语音识别,以及音乐回复接口.通过这两个接口,让大家体验一下语音点歌的魅力. 这个应用简单的来说:就是你向微信公众平台报一首歌名,微信公众平台返回这首歌曲给你听.本文将一步一步教你如何实现这个看似复杂的移动应用. 下面是我申请的测试账号的二维码,大家可以关注一下测试一下效果,不过测试账号的有效期只有一年,最

Qt5 自创简单音乐视频播放器(基础版)

最近代码写了一大堆,但是没传多少,改天找个时间梳理下!废话不多说, Qt5貌似在音频和视频的处理上和Qt4不同,Qt4用Phonon,Qt5用QMediaPlayer. 1.修改pro文件 在pro文件中添加QT    +=multimedia         //音频处理 在pro文件中添加QT    +=multimediawidget    //支持QVideoWidget,播放视频 2. //窗口设置为支持播放视频流 setAttribute(Qt::WA_TranslucentBack

快乐和努力不冲突

无聊 今天又是特别的无聊,最近这2周我是一点事情都没有,天天坐着:今天3个领导一个也没有了.日子貌似安逸,却总让我隐隐不安,该怎么样走路,我也不会了.有时真想什么也不想,但是这段时间总是很焦虑,我有时真想躬耕2年,让自己彻底静心:也行到哪个深山老林挂单1年,修身养心,整日深藏于老林野外,这样才能让自己的心更深,深了才不会起涟漪,可以冷静想些问题. 看看吧,现代化大道上行走的人们,一类是低头匆忙前行者,一类是东张西望,左顾右盼.前者迫切追求成功的焦躁人们,后者是焦躁的无目的追求者.反照自己似乎都占

逍遥叹

一大早起来,忽然想起<逍遥叹>这首歌,就带着耳机一遍又一遍的单曲循环.都说:懂音者听调,不懂调者听声.我承认我听不懂调调,只要歌词写的好写的大气的歌曲都会去听.比如之前听<海角七号>和<放下>刚开始时完全是冲着歌词去的.对于<逍遥叹>最开始的开始完全是冲着“壮志凌云几分愁,知己难逢几人留”这句歌词而听的,这是上最美好的事情莫过于壮志可酬,知己可遇.由于逍遥叹是仙剑里面的插曲,所以这一切还得从仙剑说起. 仙剑第一部正热播的那会儿,我并不太情愿去看,当时对玄幻的

2017-4-29-Train:Codeforces Round #315 (Div. 2)

A. Music(数学题) Little Lesha loves listening to music via his smartphone. But the smartphone doesn't have much memory, so Lesha listens to his favorite songs in a well-known social network InTalk. Unfortunately, internet is not that fast in the city of

版权上屡屡受挫,网易云音乐路在何方?

近日,网易云音乐因版权问题部分歌曲被下架的事件持续发酵. 起初是很多网友发现网易云音乐歌单里的一些歌曲被下架,并显示出"因合作方要求,该资源暂时无法使用"的字样.及至8月10日,网易云音乐官微首度回应版权事件,称不是钱的问题,并提到被下架歌曲量级占到乐库的1%左右,且正在加快进行与腾讯音乐的版权转售洽谈. 然而,8月11日晚间腾讯音乐集团发给第一财经记者的最新回复表示,因为网易云音乐存在多次侵权行为,因此暂停与网易云音乐部分内容转授权合作,同时,腾讯音乐娱乐集团已向深圳法院提起诉讼,直

Linux运维系统工程师系列---13

定制安装 定制安装,也叫源码安装,需要自己编译源代码的安装方式 步骤: 1.解压源代码包 2.配置 configure 3.编译 make 4.安装 make install 接下来开始做实验,希望朋友们自己动手实践,有啥不清楚的可以直接提问我,我看到会及时回复. 1.解压源码包 [[email protected] base]# cd /root/Desktop/ [[email protected] Desktop]# ls gnome-terminal.desktop  MPlayer-1

如何提高英语听力(内容摘自NECCS)

如何提高英语听力 很喜欢这篇关于提高英语听力的文章,所以收藏下来和大家一同分享一下 人走路时要用两条腿,没有任何人会觉得走路费劲.可如果让人一条腿走路,另一条腿不动,那他就会十分费劲.如果把不动的那条腿彻底定死在地上,只让他用另一条腿走路,便会寸步难行. 英语听力难以提高就是这个原因.当你拼命练听力时,只走了听力这一条腿,而另一条腿却固定在地上,因此练习再久也难以前进,一段英语往死里听上一百遍也还是听不懂,该模模糊糊的照样模模糊糊. 那么固定的那条腿是什么呢,是发音.要想彻底听懂语言,非亲口能说