知识共享许可协议

本题 由 Red 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
严禁抄袭,侵权必究。代码仅当参考使用。

第10题

描述
N个学生去海岛游玩,只带了一个hrr牌充电宝,可以为所有学生的手机充电。第i个学生的手机具有百分之p[i]的电量,充电宝总共可以充百分之M的电量。问最多可以有几台手机的电量达到百分之百。

输入
只有一组案例。

第一行是两个整数N和M(0≤N≤100,0≤M≤10000),第二行包含N个整数p[i] (0≤p[i]≤100)表示第i台手机剩余电量的百分比。

输出
一个整数,表示最多可以充的手机台数。不要换行。

样例输入
3 10
100 99 90

样例输出
2

思路

很简单,只要将每台手机存到数组里然后再挨个减100,最后判断剩余电量M能够撑到第几台手机不小于0即可

代码[C语言]

[Forlogin]
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    int a[10000]={0},N,M,cnt=0;
    cin>>N;
    cin>>M;
    for(int i=0;i<N;i++){
        cin>>a[i];
        a[i]=100-a[i];
    }
    sort(a,a+N);
    for(int i=0;i<N;i++){
        M-=a[i];
        if(M<0){
            break;
        }
        cnt++;
    }
    printf("%d",cnt);
}[/Forlogin]