zzulioj 2544: D学长 面面俱到

题目链接: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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值