【模拟】A - Alarm Clock

A - Alarm Clock

模拟,要注意的点都在注释里了

//要睡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;
}
posted @ 2020-05-18 01:33  StreamAzure  阅读(273)  评论(0编辑  收藏  举报