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

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

girl,boy,n = map(int,input().split())
date1 = []
date2 = []
temp = []
flag = 0
if girl < boy:
    flag = 1
else:
    flag = 2
for i in range(1,n):
    if flag == 1:
        if girl % i == 0:
            date1.append(i)
    else:
        if boy % i == 0:
            date2.append(i)
if len(date1) > 0:
    for i in range(len(date1)):
        x = n-date1[i]
        if boy % x == 0:
            temp.append([date1[i],x])
elif len(date2) >0:
    for i in range(len(date2)):
        x = n - date2[i]
        if girl % x == 0:
            temp.append([x, date2[i]])
g = 0
b = 0
if len(temp) > 0:
    X = 1e9
    for i in range(len(temp)):
        a1 = girl // temp[i][0]
        a2 = boy // temp[i][1]
        if abs(a1-a2) < X:
            g = temp[i][0]
            b = temp[i][1]
            X = min(abs(a1-a2),X)
    print(g,b)
else:
    print("No Solution")

 

相关推荐

  1. L1-095 寝室(PTA)

    2024-03-10 21:26:04       32 阅读
  2. L1-019 谁先倒python

    2024-03-10 21:26:04       32 阅读
  3. 1.7.1 python 作业 15道

    2024-03-10 21:26:04       45 阅读
  4. L1-035 情人节

    2024-03-10 21:26:04       48 阅读
  5. 【PTA】L1-021 L1-022 L1-023 L1-024 L1-025(C)第四天

    2024-03-10 21:26:04       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 21:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 21:26:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 21:26:04       82 阅读
  4. Python语言-面向对象

    2024-03-10 21:26:04       91 阅读

热门阅读

  1. MOGDB/openGauss数据库gs dump备份脚本及备份清理

    2024-03-10 21:26:04       36 阅读
  2. HarmonyOS4.0入门学习需要学习哪些知识点呢?

    2024-03-10 21:26:04       44 阅读
  3. openssl3.2 - exp - export RSA pubKey from RSA privKey on memory

    2024-03-10 21:26:04       38 阅读
  4. 8. Go实现Gin服务优雅关机与重启

    2024-03-10 21:26:04       42 阅读
  5. Android 二维码相关(一)

    2024-03-10 21:26:04       43 阅读
  6. 计算机基础专升本笔记十二-Excel常用快捷键大全

    2024-03-10 21:26:04       46 阅读
  7. SpringBoot多环境配置和logback日志记录器

    2024-03-10 21:26:04       43 阅读
  8. 关于设置html不让浏览器进行缓存的问题

    2024-03-10 21:26:04       42 阅读
  9. SQL如何添加数据?|SQL添加数据示例

    2024-03-10 21:26:04       47 阅读
  10. 使用Numpy手工模拟梯度下降算法

    2024-03-10 21:26:04       35 阅读