原题链接:vj
题意:在一场比赛中,裁判共出示了n张黄牌,已知两个队伍的惩罚机制不一样(就是在两个队中,要踢除一个人需要的黄牌数量不一样)给出两个队伍人数:a,b,踢一个人需要出示的黄牌数:k1,k2 总共出示的黄牌数:n,求最少与最多能够踢出的人数。
思路:踢的人最少,简单。大家先一起被罚,每个人罚到只剩一次黄牌的机会,然后用n去减所有人都不下场能承受的最大黄牌数,若所得小于等于0,则最少罚人为0,否则所得即为所求; 求罚人最多,比较两个队伍罚下一人用牌较少的一队,先罚这一队,若n有剩余就去罚另一队。
代码:
#include<stdio.h>
int main()
{
int a,b,k1,k2,n,mn,mx;
scanf("%d%d%d%d%d",&a,&b,&k1,&k2,&n);
mn=(a*(k1-1)+b*(k2-1)>=n)? 0 : n-a*(k1-1)-b*(k2-1);
if(k1<k2){
int x1=n-k1*a;
mx=(x1<=0)? n/k1 : x1/k2+a;
}
else{
int x2=n-k2*b;
mx=(x2<=0)? n/k2 : x2/k1+b;
}
printf("%d %d\n",mn,mx);
return 0;
}