2 条题解

  • 0
    @ 2025-8-1 10:31:45

    我又来写题解辣!~~~~~(原因是立志想成为这里题解写得最多的成员)(嬉皮笑脸)

    好,现在我们把目光移回题目上。根据题目要求,我们可以得到一下几条信息:

    1.药房的药的最初始的值一定。

    2.如果病人要的药量>剩余的量,则拒绝给药,反之,则给药。

    还有一点,它这个“给药”应该是有先后顺序的……

    但是,回归正题,题目中要我们求的是有多少入没有拿上药,那我们可以反其道而行之,求出有多少只病患拿到了药,最后再用总人数-拿到药的人数。

    所以,主包选择一边循环输入一边判断。

    也就是说:先建立一个数组a,然后输入一个值a[i],判断a[i]是不是比药的剩余量大(信息1),如果是,就给药(药量-=a[i]),并且拿到药的人数++。

    最后,将总人数减去拿到药的人的人数,得出最终结果。

    接下来就是AC代码:

    #include<bits/stdc++.h>

    using namespace std;

    int main(){

    int yao,n,a[105],o=0;
    cin>>yao>>n;
    for(int i=1; i<=n; i++){
    cin>>a[i];
    if(yao>=a[i]){
    	yao-=a[i];
    	o++;
    }
    else continue;
    }
    cout<<n-o;
    return 0;
    

    }

    PS:题解仅供参考啊喂!!!敢乱抄半夜顺你家打火机QWQ

    信息

    ID
    383
    时间
    1000ms
    内存
    128MiB
    难度
    9
    标签
    递交数
    12
    已通过
    5
    上传者