题目链接:http://acm.zzuli.edu.cn/problem.php?id=2544
2544: D学长 面面俱到
时间限制: 1 Sec 内存限制: 128 MB
提交: 242 解决: 39
[提交] [状态] [讨论版] [命题人:admin]
题目描述
众所周知,D学长工作时逻辑严谨,生活中的琐事也能考虑的面面俱到。
某日,D学长采购了3种糖果想分给他的2个室友,室友A只吃1、2两种糖果,室友B只吃2、3两种糖果,而D学长只吃1、3两种糖果。
如果D学长三种糖果分别采购了X,Y,Z个,且想要吃的最多的那个人吃的尽量少,那吃的最多的人吃了多少个糖果?
输入
输入三个整数,分别表示 x,y,z, 1<=x,y,z<=1000000
输出
输出一个整数,表示吃最多的人吃的糖果数量
样例输入 Copy
3 3 3
样例输出 Copy
3
思路:
求出X, Y, Z中数量最大的那个,然后将数量最多的那堆平分给两人,然后比较最大堆的一半和全部糖果平均分的大小,最大的那个就是结果,需要注意有余数的情况。
代码:
#include <stdio.h>
#include <stdlib.h>
int max(int a, int b)
{
if(a >= b)
return a;
return b;
}
int main()
{
int x, y, z;
scanf("%d %d %d", &x, &y, &z);
int mx = max(x, max(y, z));
int sum = x + y + z;
if(mx % 2)
mx = mx / 2 + 1;
else
mx /= 2;
if(sum % 3)
sum = sum / 3 + 1;
else
sum /= 3;
if(mx > sum)
printf("%d\n", mx);
else
printf("%d\n", sum);
return 0;
}