A.Sweet問題

タイトル:スウィート問題

質問の意味:赤、緑、青ます。Doあなたはキャンディの3つの山持っている
R、G、Bのお菓子と第3の反応器は、キャンディと第二反応器があるお菓子の山での
キャンディの2つの異なる色の毎日に食べることができるが、見つけるためにあなたがお菓子を食べることができる日の最大数

分析:下位の最初の行、または以外の場合は、最大ヒープ杭に等しくして、別の二つのスタックに応答し、他の2つのスタックよりも小さく、第1の最大スタックを排除する場合に、さらに評価杭を排除することができキャンディから、
日の最大数を取得しようとするので、あなたが2つの山同じ2つの山に共有したいので、お互い残りの二つの山を排除しても続きます。

#include <cstdio>
#include <iostream>
#include <algorithm>

using namespace std;
int a[3];
int t;
int main()
{
    cin >> t;
    while (t--)
    {
        cin >> a[0] >> a[1] >> a[2];

        sort(a, a + 3);


        if (a[2] >= a[0] + a[1])
            printf("%d\n", a[0] + a[1]);
        else
        {
            //a[2] < a[0] + a[1]

            int res = 0;
            res += a[2];

            int t = (a[0] + a[1] - a[2]) / 2;
            res += t;
            printf("%d\n", res);
        }

    }


    return 0;
}

おすすめ

転載: www.cnblogs.com/pixel-Teee/p/11964094.html