CodeForces 732C-Sanatorium

  • CodeForces 732C-Sanatorium


题目意思大概就是给定早、中、晚饭的吃饭次数,然后求出最少没吃饭的次数

一般空缺位置就是没吃饭,但第一天和最后一天排外,因为第一天去的时间任意,所以早饭、早饭和午饭在家吃也有可能,不计入最后一天可能只吃了早饭或者吃了早饭午饭就走人,晚饭的空缺不计入

吐槽:非常难受的一道题,到现在都不怎么理解,求大神~

 

  • 代码一:乱搞,粗暴做

#include<iostream>		
#include<algorithm>
using namespace std;

long long Max_Three(long long a, long long b, long long c)
{
	return max(a, max(b, c));
}

int main()
{
	long long a, b, c;
	while (cin >> a >> b >> c)
	{
		long long Max = Max_Three(a, b, c);
		long long Res = 3 * Max - a - b - c;

		Max = Max_Three(a + 1, b, c);
		Res = min(Res, 3 * Max - a - 1 - b - c);

		Max = Max_Three(a + 1, b + 1, c);
		Res = min(Res, 3 * Max - a - 1 - b - 1 - c);

		Max = Max_Three(a, b + 1, c + 1);
		Res = min(Res, 3 * Max - a - b - 1 - c - 1);

		Max = Max_Three(a, b + 1, c);
		Res = min(Res, 3 * Max - a - b - 1 - c);

		Max = Max_Three(a, b + 1, c + 1);
		Res = min(Res, 3 * Max - a - b - 1 - c - 1);

		Max = Max_Three(a, b, c + 1);
		Res = min(Res, 3 * Max - a - b - c - 1);

		cout << Res << endl;
	}

}

 

  • 代码二:dalao的代码,待理解


#include<iostream>	
#include<algorithm>
using namespace std;



long long Meal[3];

int main()
{
	while (cin >> Meal[0] >> Meal[1] >> Meal[2])
	{
		long long Res = 0;
		sort(Meal, Meal + 3);
		long long Max = Meal[2];
		for (int i = 0; i < 3; i++)
		{
			if (Meal[i] == Max)
				Meal[i]--;
		}
		Max--;
		for (int i = 0; i < 3; i++)
			Res += Max - Meal[i];

		cout << Res << endl;
	}
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值