• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
scorpiorax
博客园    首页    新随笔    联系   管理    订阅  订阅
药房管理

23:药房管理

总时间限制:
1000ms
内存限制:
65536kB
描述

   随着信息技术的蓬勃发展,医疗信息化已经成为医院建设中必不可少的一部分。计算机可以很好地辅助医院管理医生信息、病人信息、药品信息等海量数据,使工作人员能够从这些机械的工作中解放出来,将更多精力投入真正的医疗过程中,从而极大地提高了医院整体的工作效率。     对药品的管理是其中的一项重要内容。现在药房的管理员希望使用计算机来帮助他管理。假设对于任意一种药品,每天开始工作时的库存总量已 知,并且一天之内不会通过进货的方式增加。每天会有很多病人前来取药,每个病人希望取走不同数量的药品。如果病人需要的数量超过了当时的库存量,药房会拒 绝该病人的请求。管理员希望知道每天会有多少病人没有取上药。

输入
共3行 第一行是每天开始时的药品总量m 第二行是这一天取药的人数n(0 < n <= 100) 第三行共有n个数,分别记录了每个病人希望取走的药品数量(按照时间先后的顺序),两数之间以空格分隔
输出
只有1行,为这一天没有取上药品的人数。
样例输入
30
6
10 5 20 6 7 8
样例输出
2

以下为错误代码
 1 #include<cstdio>
 2 #include<cmath>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int cmp(int x,int b)
 7 {
 8     return x < b;
 9 }
10 int main()
11 {
12     int a[105],i,j,m,n;
13     scanf("%d %d",&n,&m);
14     for(i = 1;i <= m;i++)
15     {
16         scanf("%d",&a[i]);
17     }
18     sort(a+1,a+1+m,cmp);
19     for(i = 1;i <= m;i++)
20     {
21         n = n - a[i];
22         if(n < 0)
23         {
24             printf("%d",m - i + 1);
25             break;
26         }
27         if(i == m)
28         printf("0");
29     }
30     return 0;
31 }

直接把他排序了没注意到题里面的按时间顺序

以下为正确代码

 1 #include<cstdio>
 2 #include<cmath>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int main()
 7 {
 8     int a[105],i,j,m,n,ans = 0;
 9     scanf("%d %d",&n,&m);
10     for(i = 1;i <= m;i++)
11     {
12         scanf("%d",&a[i]);
13     }
14     for(i = 1;i <= m;i++)
15     {
16         n = n - a[i];
17         if(n < 0)
18         {
19             n = n + a[i];
20             ans = ans + 1;
21         }
22     }
23     printf("%d",ans);
24     return 0;
25 }

 

 

posted on 2018-05-11 19:59  scorpiorax  阅读(1175)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3