第一行输入两个整数
,用空格隔开,表示马路的长度和地铁施工区域数,满足
,
。
接下来
行,每行输入两个整数
,用空格隔开,表示第
个施工区域的起始点和终止点的坐标,满足
。
输出一个整数,表示移除所有施工区域内(包括端点)树后,剩余的树的总棵树数。
500 3 150 300 100 200 470 471
298
马路上共有棵树。施工区域 [150,300] 中含有
棵,[100,200] 中含有
棵,[470,471] 中含有
棵。三个区域的重叠部分 [150,200] 有
棵被重复移除,所以实际移除的树数为
,因此剩余
棵。
10 2 2 5 4 8
4
马路上共有棵树。区域 [2,5] 移除
棵,区域 [4,8] 移除
棵。重叠部分 [4,5] 有
棵被重复移除,所以实际移除
棵,剩余
棵。
l,m = map(int,input().strip().split()) regin = [] for _ in range(m): a,b = map(int,input().strip().split()) regin.append((a,b)) totals = l +1 remove_trees = overlaps = 0 removed = [False] * (l+1) for (a,b) in regin: for i in range(a,b+1): if not removed[i]: remove_trees += 1 removed[i] = True else: overlaps += 1 remain = totals - remove_trees print(remain)