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

    • 0
      @ 2024-8-14 11:03:05

      #include using namespace std; int main(){ int zl,rs,i,sb,sum=0; cin>>zl>>rs; for(i=1;i<=rs;i++){ cin>>sb; if(zl>=sb){ zl=zl-sb; }else sum=sum+1; } cout<<sum; return 0; }

      • 1

      信息

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