按请求顺序扣减库存,库存不足时计数但不改变库存。
OJ: noi_openjudge
题目 ID: ch0105-23
难度:入门
标签:模拟循环python
日期: 2026-07-30 23:01
题意
给定初始库存和按顺序到来的取药请求,统计因库存不足而被拒绝的病人数。
思路
逐个处理请求。请求量超过当前库存时增加拒绝计数,库存不变;否则扣减库存。这是典型的单状态顺序模拟。
代码
Python代码
python
stock = int(input())
patient_count = int(input())
requests = map(int, input().split())
rejected = 0
for request in requests:
if request > stock:
rejected += 1
else:
stock -= request
print(rejected)C++代码
cpp
#include <cstdio>
int main(){
int m,n,a,i,cnt = 0;
scanf("%d%d",&m,&n);
for(i = 1;i<=n;i++){
scanf("%d",&a);
if( a > m )
cnt++;
else
m = m - a;
}
printf("%d",cnt);
return 0;
}复杂度
时间复杂度为
总结
库存模拟的关键是拒绝请求不能消耗库存,状态只在成功操作后更新。