90

qym 山顶洞人 2024-11-23 9:29:18 1
/*
某校大门外长度为l的马路上有一排树,
每两棵相邻的树之间的间隔都是1米。
我们可以把马路看成一个数轴,
马路的一端在数轴0的位置,另一端在l的位置;
数轴上的每个整数点,即0,1,2,…,l,都种有一棵树。
由于马路上有一些区域要用来建地铁。
这些区域用它们在数轴上的起始点(u)和终止点(v)表示。
已知任一区域的起始点和终止点的坐标都是整数,
区域之间可能有重合的部分。
现在要把这些区域中的树(包括区域端点处的两棵树)移走。
你的任务是计算将这些树都移走后,马路上还有多少棵树。
*/
#include<iostream>
using namespace std;
bool tree[10001];
int l,m;//马路的长度l和区域的数目m。
int u,v;//分别表示一个区域的起始点和终止点的坐标。
int sum;
int main(){
	cin>>l>>m;
	//把1~l这个区间内“种上”树。
	for(int i=1;i<=l;i++){
		tree[i]=1;
	}
	//输入区域的起始点和终止点的坐标。
	for(int i=1;i<=m;i++){
		cin>>u>>v;
		//移除u~v区间内的树。
		for(int j=u;j<=v;j++){
			tree[j]=0;
		}
	}
	for(int i=1;i<=l;i++){
		if(tree[i]==1){
			sum++;
		}
	}
	cout<<sum+1;
	return 0;
}
{{ vote && vote.total.up }}