『题解』CodeForces CF1611B Team Composition Programmers and Mathematicians

题目传送门

题目大意

\(a\) 名程序员和 \(b\) 名数学家,求他们最多能组成多少支队伍。

队伍约束如下:

  • 至少一名程序员和一名数学家。
  • 人数必须恰好为 \(4\) 人。

思路

本题使用分类讨论。

  • 考虑极限情况:每组仅有一名程序员或数学家,那么条件 \(a \ge 3b\ or\ b \ge 3a\) 一定成立。此时可以组建 \(\min(a,b)\) 支队伍,剩余人数不考虑。
  • 考虑一般情况:即条件 \(a \ge 3b\ or\ b \ge 3a\) 不成立,那么只能组建 \(\lfloor \dfrac{a+b}{4} \rfloor\) 支队伍。

答案仅需取两种情况的最小值,输出 \(\min(\min(a,b),\lfloor \dfrac{a+b}{4} \rfloor)\) 即可。

代码

#include <iostream>
using namespace std;
int t,a,b;

int main(){
    cin >> t;
    while(t--){
        cin >> a >> b;
        cout << min(min(a,b),(a+b)/4) << endl;
    }
    return 0;
}
posted @ 2022-01-21 20:56  仙山有茗  阅读(43)  评论(0编辑  收藏  举报