男生女生分配

题目链接: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人。。题目中关于这句话的描述非常不清楚,是哪个白痴出的问题,关键的语句竟然不说清楚,想让我们猜吗?

posted @ 2013-10-25 16:36  狂盗一枝梅  阅读(247)  评论(0编辑  收藏  举报