男生女生分配

题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1470

男生女生配
Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

 

学校有A个同学参加数学竞赛,如果将参赛人员分成B组,则必有一组的女生的女生的人数大于C,又知参赛者中任意D人中至少有男生E人,则参赛的男生最多有Y人,最少有X人。如果结果逻辑错误,输出-1.

输入

 多组输入,输入A,B,C,D,E。全部为0的时候结束。(A,B,C,D,E全部为整数。)

输出

 

输出X,Y

示例输入

55 4 2 10 1

10 1 11 5 1

0 0 0 0 0

示例输出

46 46	

-1

提示

 

代码:

 

 1 #include<stdio.h>

 2 int main()

 3 {

 4     int a,b,c,d,e;

 5     while(scanf("%d%d%d%d%d",&a,&b,&c,&d,&e),a|b|c|d|e)

 6     {

 7         int x=a-d+e;//x求最少人数

 8         int y=a-b*c-1;//y求最多人数

 9         if(c<0)

10             y=a;

11         if(e<=0)

12             x=0;

13         if(x>y)//逻辑错误

14             printf("-1\n");

15         else

16             printf("%d %d\n",x,y);

17     }

18     return 0;

19 }
View Code

 上面的代码有问题:

首先c和e可以是负数,这不合常理,因为我们都知道人数必须是正的才行;y=a-b*c-1=a-(b*c+1)=a-[(b-1)*c+(c+1)],如果是这个意思的话,是不是就意味着每组女生至少有c人(除去那一组大于c人的),如果是这样的话好像和题意不符,原文是“必有一组的女生的女生的人数大于C”,这句话是不是可以认为有一组女生人数至少为c+1人,其他组女生的人数任意?如果是这样的话女生的人数至少应为c+1人,而不是b*c+1人。。题目中关于这句话的描述非常不清楚,是哪个白痴出的问题,关键的语句竟然不说清楚,想让我们猜吗?

你可能感兴趣的:(男生女生分配)