A. Sweet Problem

Codeforces Round #603 (Div. 2)

题目链接:https://codeforces.com/contest/1263/problem/A

题目描述:

题目

思路:

三个颜色的糖果,每天吃两块(必须颜色不同),问最多能吃几天。给三种糖果的数目按从小到大排序,最少和较少的两种糖果的总数如果小于等于数目最多的糖果的数目,则总共可以吃的天数等于最少和较少的两种糖果的总和;但是如果较少的两种糖果的总和大于最多的糖果的数目,可以理解为用最少的一种糖果去平衡较多和最多的两种糖果的数目,所以这种情况总共可以吃三种糖总数的1/2,如果总数是奇数,取总数的1/2(int型)会自动向下取整,不会影响结果。

代码:

#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;
int main(){
    int t,s[4];
    #ifdef HH
    freopen("G:/input.txt","r",stdin);
    #endif // HH
    scanf("%d",&t);
    while(t--){
        for(int i=0;i<3;i++){
            scanf("%d",&s[i]);
        }
        sort(s,s+3);
        if(s[0]+s[1]<=s[2])printf("%d\n",s[0]+s[1]);
        else printf("%d\n",(s[0]+s[1]+s[2])/2);
    }
    return 0;
}
Last modification:December 10th, 2019 at 12:21 am
如果觉得我的文章对你有用,请随意赞赏