题解 P6443 【[COCI2010-2011#1] TIMSKO】
-
首先看看数据范围 :
n,m \leq 100 , 嗯 ,是道水题,那么就可以暴力了! -
暴力方法:我们可以枚举组成的队伍数量,因为我们知道队伍的男,女生人数,所以我们可以算出组成
i 队后剩下男生为n-i ,女生人数为m-2*i ,那么就判断剩下人数是否足够要派出的人数就行了。(还要注意判断男女生剩余人数都是非负数) -
对于循环,我们应该从
0 开始,直到(n+m-k)/3 ,剩余人数除以每个队伍的三人一定是最大可能的答案。 -
代码实现:
#include<iostream> using namespace std; int main() { int n,m,k,ans=0; cin>>n>>m>>k;//n是女生人数,m是男生人数 for(int i=0;i<=(n+m-k)/3;i++)//组成队伍最大不超过剩余人数的三分之一 { int boy=m-i;//组成i个队伍,剩下男生人数 int girl=n-2*i;//组成i个队伍,剩下女生人数 if(boy+girl>=k&&boy>=0&&girl>=0)ans=i;//如果满足条件,则更新ans } cout<<ans; return 0; }