zoukankan      html  css  js  c++  java
  • 男生女生分配

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

  • 相关阅读:
    客户端不能连接MySQL
    Linux 7.x 防火墙&端口
    MYSQL.版本查看-LINUX
    Java之.jdk卸载-Linux
    Redis.之.环境搭建(集群)
    Elasticsearch.安装插件(head)
    Linux安装Nodejs
    Linux.ls 查看常用参数
    Elasticsearch.安装(单节点)
    Andrew NG 机器学习编程作业3 Octave
  • 原文地址:https://www.cnblogs.com/kuangdaoyizhimei/p/3388175.html
Copyright © 2011-2022 走看看