你作为一名出道的歌手终于要出自己的第一份专辑了,你计划收录 n 首歌而且每首歌的长度都是 s 秒,每首歌必须完整地收录于一张 CD 当中。每张 CD 的容量长度都是 L 秒,而且你至少得保证同一张 CD 内相邻两首歌中间至少要隔 1 秒。为了辟邪,你决定任意一张 CD 内的歌数不能被 13 这个数字整除,那么请问你出这张专辑至少需要多少张 CD ?
while(input = readline()){
var lines = input.split(" ");
var n = parseInt(lines[0]);
var s = parseInt(lines[1]);
var L = parseInt(lines[2]);
var x; //设每张CD收录x首歌
x=(L+1)/(s+1);
x = Math.floor(x); //求出x
var ans = Math.ceil(n/x); //求出非特殊条件下的结果
if( x%13 == 0 ){
x = x-1; //如果x是13倍数,那么每张CD都要少收录1首
ans = Math.ceil(n/x);
}
if( n < x && n%13 == 0 ){
ans = 2;//如果仅需要一张CD但是收录了13倍数的歌曲需要加一张,如“13 0”
}
if( (n-(ans-1)*x)%13 == 0 && x-(n-(ans-1)*x) == 1 ){
//如果最后一张CD是13的倍数【(n-(ans-1)*x)%13 == 0】,可以把前一张拿过来一首,但是拿过来后前一张又可能会是13的倍数
//这时候也需要再加一张CD,比如这样的情况“14 14 13” “27 27 27 26”
//这样情况的条件是最后一个必须比前一个少1【x-(n-(ans-1)*x) == 1】
//所以满足上述两项条件的时候总CD需要加1
ans += 1;
}
print(ans);
}
网友评论