第一行输入两个整数
,用空格隔开,表示马路的长度和地铁施工区域数,满足
,
。
接下来
行,每行输入两个整数
,用空格隔开,表示第
个施工区域的起始点和终止点的坐标,满足
。
输出一个整数,表示移除所有施工区域内(包括端点)树后,剩余的树的总棵树数。
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] 有
棵被重复移除,所以实际移除
棵,剩余
棵。
#include <stdio.h> void shu(int a[],int l,int r,int L) { for(int i=0;i<=L;i++) { if(i>=l&&i<=r) { a[i]=1; } } } int main() { int L,M; scanf("%d%d",&L,&M); int a[10000]={0}; int n=M; for(int i=0;i<n;i++) { int l,r; scanf("%d%d",&l,&r); shu(a,l,r,L); } int hen=0; for(int i=0;i<=L;i++) { if(a[i]==0) { hen++; } } printf("%d",hen); }