男女搭配(数学思维)
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 请在此输入您的代码
int t;
cin>>t;
while(t--){
int n,m,k;
cin>>n>>m>>k;
int s=min(n,2*m)/2;
if(n+m-k >= 3*s)
cout<<s<<endl;
else
cout<<(n+m-k)/3<<endl;
}
return 0;
}
计算 s,表示初始时不移除任何人时的最大团队数,min(n, 2 * m) 取两者较小值,/ 2 得到团队数
n + m - k 是移除 K 人后的剩余总人数
如果剩余人数足够支持 s 个团队,则输出 s。
不足以支持 s 个团队时,男女就要按比例移除k人,最后用 (n + m - k) / 3 估算团队数,多余的不成团。