模拟,要注意的点都在注释里了
//要睡a分钟,b分钟后闹钟响
//如果响的时候没睡够a分钟,设c分钟后响,并花d分钟重新入睡
//如果响的时候还没睡着,设c分钟后响,并花d分钟重新入睡
//如果响的时候睡够了a分钟 起床
//判断能否起床,如果能,什么时候起床
void solve() {
//b>=a必起床
//b<a且c<=d时永远起不了床
//b<a且c>d时,一个周期睡d-c分钟
LL a, b, c, d;
cin >> a >> b >> c >> d;
if (b >= a) {
cout << b << endl;
return;
}
if (c <= d) {
cout << -1 << endl;
return;
}
LL k = (a - b) % (c - d);
if (k != 0) k = (a - b) / (c - d) + 1;
else k = (a - b) / (c - d);
cout << k * c + b << endl;
}
原文链接: https://www.cnblogs.com/streamazure/p/12908012.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/349354
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!