【模拟】A

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;
}
原文地址:https://www.cnblogs.com/streamazure/p/12908012.html