• UCloud 机房的网络搭建(计蒜客初赛第五场)


    UCloud 刚刚建立一个新机房,近日正在进行网络搭建。机房内有 nn 台服务器和 mm 个分线器,整个机房只有一个网线出口。分线器的作用是将一根网线转换成多根网线。蒜头君也知道每个分线器输出的最大网线根数(不一定要将分线器输出的每根线都用上),问你至少需要使用多少个分线器才能使得每台服务器都有网线可用。

    输入格式

    第一行输入 n,m(0 le n,m le 100)n,m(0n,m100)。

    第二行输入包含 mm 个整数的数组 A(0 le A_i le 10)A(0Ai​​10) 表示每个分线器输出的最大网线根数。

    输出格式

    输出最少需要的分线器数量。若不能使得所有服务器都有网线可用,输出一行Impossible

    样例说明

    一共需要 33 个分线器,最大输出根数分别为 7,3,27,3,2,连接方法如下图所示:

    样例输入

    10 4
    2 7 2 3

    样例输出

    3
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <algorithm>
     5 
     6 using namespace std;
     7 
     8 int main()
     9 {
    10     int n,m;
    11     int a[200];
    12     int sum=0;
    13     int cou=0;
    14     int flag=0;
    15     scanf("%d %d",&n,&m);
    16     if(m==0){
    17         if(n==0){
    18             printf("0
    ");
    19         }else if(n==1){
    20             printf("0
    ");
    21         }else{
    22             printf("Impossible
    ");
    23         }
    24     }else{
    25         for(int i=0;i<m;i++){
    26             scanf("%d",&a[i]);
    27         }
    28         if(n==1){
    29             printf("0
    ");
    30         }else if(n==0){
    31             printf("0
    ");
    32         }else{
    33             sort(a,a+m);
    34             for(int i=m-1;i>=0;i--){
    35                 if(i==m-1){
    36                     sum+=a[i];
    37                     cou++;
    38                 }else{
    39                     sum+=a[i]-1;
    40                     cou++;
    41                 }
    42                 if(sum>=n){
    43                     printf("%d
    ",cou);
    44                     flag=1;
    45                     break;
    46                 }
    47             }
    48             if(flag==0){
    49                 printf("Impossible
    ");
    50             }
    51         }
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    phpspider爬虫框架的使用
    【php设计模式】责任链模式
    【php设计模式】策略模式
    【php设计模式】观察者模式
    【php设计模式】模板模式
    【温故知新】php 魔术方法
    【php设计模式】享元模式
    Java50道经典习题-程序18 乒乓球赛
    Java50道经典习题-程序19 输入行数打印菱形图案
    Java50道经典习题-程序20 求前20项之和
  • 原文地址:https://www.cnblogs.com/TWS-YIFEI/p/6938750.html
Copyright © 2020-2023  润新知