题解 | #E-喝可乐#

喝可乐

https://ac.nowcoder.com/acm/contest/11210/E

#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
typedef long long ll;
int main() {
	int t;
	cin >> t;
	while (t--) {
		int n, a, b, c, d;
		cin >>n>> c >> d;
		a = min(c, d); b = max(c, d);
		int sum = n;
		int temp = n / a-1;
		int n_a = 0, n_b = 0;
		n_a = temp * a;
		int n_rest = n - n_a;
		bool f = 1;
		flag:while (n_a >= a || n_b >= b) {
			if (f) {
				int temp_a = n_a / a;
				n_a -= temp_a * a;
				n_b += temp_a;
				sum += temp_a;
				f = 0;
			}
			else {
				int temp_b = n_b / b;
				n_b -= temp_b * b;
				n_a += temp_b;
				sum += temp_b;
				f = 1;
			}
		}
		int n_as = a - n_a;
		int n_bs = b - n_b;
		if (n_bs > n_as) {
			n_a += n_as;
			n_rest -= n_as;
		}
		else {
			n_b += n_bs;
			n_rest -= n_bs;
		}
		if (n_rest >= 0) {
			goto flag;
		}
		cout << sum << endl;

	}
}

全部评论

相关推荐

喜欢吃蛋糕仰泳鲈鱼是我的神:字节可以找个hr 给你挂了,再放池子捞
点赞 评论 收藏
分享
10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
4 收藏 评论
分享
牛客网
牛客企业服务