360筆記試験——春招

4637 ワード

沫璃は彼女の友达を週末のパーティーに招待した.沫璃は3色の風船を買って、今彼女はこれらの風船を持って食卓を飾りに来て、各食卓はちょうど3つの風船だけで装飾して、3つの風船の色が完全に同じではないことを要求して、2種類あるいは1種類の色です.沫璃はこれらの風船が最大何枚のテーブルを飾ることができるか知りたい.入力:1行目の1つの数T(T<=100)は、データ群数を表す.各グループのデータについて、1行目の3つの整数r,g,bは、それぞれ3色の風船の個数(0<=r,g,b<=2*10^9)を表す出力:各グループのデータについて、1行を出力し、1つの整数は最も装飾可能な食卓の数を表す.
サンプル入力:2 5 4 3 3サンプル出力:4 2
#include<iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    int r,g,b;
    int Max,Min,mins;
    while(n>0)
    {
        cin>>r>>g>>b;
        if(r>g){
            mins=g;
            if(r>b){
                Max=r;
                mins+=b;
                if(b>g){
                    Min=g;
                }
                else{
                    Min=b;
                }
            }
            else{
                Max=b;
                Min=g;
                mins+=r;
            }
        }
        else{
            mins=r;
            if(g>b){
                Max=g;
                mins+=b;
                if(b>r){
                    Min=r;
                }
                else{
                    Min=b;
                }
            }
            else{
                Max=b;
                Min=r;
                mins+=g;
            }
        }

        if(Max>=mins*2){
            cout<<mins<<endl;
        }
        else{
            int k=((Max+mins)-(Max*2-mins))/3;
            if((Max-k)>(mins-2*k)*2){
                cout<<(mins-k)<<endl;
            }
            else{
                cout<<((Max-k   )/2+k)<<endl;
            }
        }
        n--;
    }
}