文章
5
粉丝
495
获赞
1
访问
44.9k
其他高级的算法我也不会写,故直接对问题进行模拟:先开一个容量为100的列表表示一共1-99站,每个站初值为额定人数m。
对于每个[a,b]区间上的购票请求,则直接遍历下标为a,b的列表(若列表容量不够再扩容),看use[j]剩余数是否>=k;
当[a,b]区间上每个站点的人数都大于等于k时表示这个购票请求满足,输出1,然后更新人数数据。
n, m = map(int, input().split())
use = [m for i in range(100)]
for i in range(n):
a, b, k = map(int, input().split())
if b > len(use): # 当前列表容量达不到站的数量,扩容
use += [m for i in range(b - len(use) + 5)]
flag = 1
for j in range(a, b + 1):
if use[j] < k:
flag = 0
print(0)
break
if flag == 1: # 此次购票请求各个站点都能满足
for j in range(a, b + 1):
use[j] -= k # 更新票数
print(1)
登录后发布评论
暂无评论,来抢沙发