信道分布(80%用例)C卷(Java&&Python&&C++&&Node.js&&C语言)

算法工程师小明面对着这样一个问题,需要将通信用的信道分配给尽量多的用户:

信道的条件及分配规则如下:

1)     所有信道都有属性:”阶”。阶为r的信道的容量为2^r比特;

2)     所有用户需要传输的数据量都一样:D比特;

3)     一个用户可以分配多个信道,但每个信道只能分配给一个用户;

4)     只有当分配给一个用户的所有信道的容量和>=D,用户才能传输数据;

给出一组信道资源,最多可以为多少用户传输数据?

输入描述:

 
  

第一行,一个数字R。R为最大阶数。

0<=R<20

第二行,R+1个数字,用空格隔开。

代表每种信道的数量Ni。按照阶的值从小到大排列。

0<=i<=R, 0<=Ni<1000.

第三行,一个数字D。

D为单个用户需要传输的数据量。

0

输出描述:

 
  

一个数字,代表最多可以供多少用户传输数据。

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

5
10 5 0 1 3 2
30

输出

4

说明

 
  

最大阶数为5.

信道阶数:0       1    2    3    4    5

信道容量:1       2   

你可能感兴趣的:(华为OD(多语言),c语言,java,python)