• L1-7 分寝室(Python)


    学校新建了宿舍楼,共有 n 间寝室。等待分配的学生中,有女生 n0​ 位、男生 n1​ 位。所有待分配的学生都必须分到一间寝室。所有的寝室都要分出去,最后不能有寝室留空。
    现请你写程序完成寝室的自动分配。分配规则如下:

    • 男女生不能混住;
    • 不允许单人住一间寝室;
    • 对每种性别的学生,每间寝室入住的人数都必须相同;例如不能出现一部分寝室住 2 位女生,一部分寝室住 3 位女生的情况。但女生寝室都是 2 人一间,男生寝室都是 3 人一间,则是允许的;
    • 在有多种分配方案满足前面三项要求的情况下,要求两种性别每间寝室入住的人数差最小。

    输入格式:

    输入在一行中给出 3 个正整数 n0​、n1​、n,分别对应女生人数、男生人数、寝室数。数字间以空格分隔,均不超过 105。

    输出格式:

    在一行中顺序输出女生和男生被分配的寝室数量,其间以 1 个空格分隔。行首尾不得有多余空格。
    如果有解,题目保证解是唯一的。如果无解,则在一行中输出 No Solution

    输入样例 1:

    24 60 10
    

    输出样例 1:

    4 6
    

    注意:输出的方案对应女生都是 24/4=6 人间、男生都是 60/6=10 人间,人数差为 4。满足前三项要求的分配方案还有两种,即女生 6 间(都是 4 人间)、男生 4 间(都是 15 人间);或女生 8 间(都是 3 人间)、男生 2 间(都是 30 人间)。但因为人数差都大于 4 而不被采用。

    输入样例 2:

    29 30 10
    

    输出样例 2:

    No Solution
    

    感谢浙江警官职业学院楼满芳老师斧正数据!

    1. girl,boy,n = map(int,input().split())
    2. date1 = []
    3. date2 = []
    4. temp = []
    5. flag = 0
    6. if girl < boy:
    7. flag = 1
    8. else:
    9. flag = 2
    10. for i in range(1,n):
    11. if flag == 1:
    12. if girl % i == 0:
    13. date1.append(i)
    14. else:
    15. if boy % i == 0:
    16. date2.append(i)
    17. if len(date1) > 0:
    18. for i in range(len(date1)):
    19. x = n-date1[i]
    20. if boy % x == 0:
    21. temp.append([date1[i],x])
    22. elif len(date2) >0:
    23. for i in range(len(date2)):
    24. x = n - date2[i]
    25. if girl % x == 0:
    26. temp.append([x, date2[i]])
    27. g = 0
    28. b = 0
    29. if len(temp) > 0:
    30. X = 1e9
    31. for i in range(len(temp)):
    32. a1 = girl // temp[i][0]
    33. a2 = boy // temp[i][1]
    34. if abs(a1-a2) < X:
    35. g = temp[i][0]
    36. b = temp[i][1]
    37. X = min(abs(a1-a2),X)
    38. print(g,b)
    39. else:
    40. print("No Solution")

     

  • 相关阅读:
    使用$indesStats查看索引使用情况
    linux的审计功能(audit)
    GitLab CI/CD系列教程(一)
    pandas基础语法
    大数据开发之数据仓库
    易点易动:解决纸质固定资产审批痛点,助您高效自定义审批流程
    力扣leetcode 827. 最大人工岛
    StarRocks 社区:从初生到两周年的进化之路
    LeaRun.Java快速开发平台 高效代码自动化生成
    OOM内存溢出分析
  • 原文地址:https://blog.csdn.net/2203_75357861/article/details/136606064