|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
学校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置,数轴上的每个整数点(即O,1,2,......,L)都有一棵树。由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任意区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。请计算将这些树都移走后,马路上还有多少棵树。
输入:
第一行有两个正整数L(1<L<10000)和M(1<M<100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行,每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
输出:
一行一个整数,表示马路上剩余的树的数目。
本帖最后由 jackz007 于 2022-7-15 00:15 编辑
【代码1】:
- l , m = map(int , input() . strip() . split())
- e = [1 for i in range(l + 1)]
- for i in range(m):
- a , d = map(int , input() . strip() . split())
- for j in range(a , d + 1):
- if j >= 0 and j <= l:
- e[j] = 0
- print(sum(e))
复制代码
【代码2】:
- l , m = map(int , input() . strip() . split())
- e = [i for i in range(l + 1)]
- for i in range(m):
- a , d = map(int , input() . strip() . split())
- for j in range(a , d + 1):
- if j in e:
- e . remove(j)
- print(len(e))
复制代码
|
|