题解:AT_abc422_c [ABC422C] AtCoder AAC Contest

· · 题解

问题分析

首先明确题目核心要求:每场比赛需要至少 1 个 A、至少 1 个 C,再加上任意一个字母,即每场比赛消耗的字母组合需满足:

因此,最多能举办的比赛场数受两个关键条件限制:

最终答案是这两个限制条件的最小值,即:

\text{ans} = \min\left( \min(n_A, n_C), \frac{n_A + n_B + n_C}{3} \right)

code

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int T;
    cin>>T;
    while(T--) 
    {
        int a,b,c;
        cin>>a>>b>>c;
        cout<<min(min(a,c),(a+b+c)/3)<<endl;
    }
    return 0;
}