#include <iostream>
#include <vector>
using namespace std;
int main() {
int l;
cout << "请输入马路的长度:" << endl;
cin >> l;
vector<int> num(l + 1, 1); //定义一个数组,用一个元素1来代表一棵树,20米就有21棵树;
int m;
cout << "请输入区域的数目:" << endl;
cin >> m;
int u_start, v_over; //起始位置和终点位置
for (int i = 0; i < m; i++) {
cout << "请输入第" << i + 1 << "区域的起始点和终止点:" << endl; //利用循环给m个组起始位置和终止位置赋值
cin >> u_start >> v_over;
for (int i = u_start; i <= v_over; i++) { //被选中的区域将原本的1,赋值为0
num[i] = 0;
}
}
int count = 0;
for (int i = 0; i < l + 1; i++) { //将存放树的数组遍历
if (num[i] == 1) { //元素还为1的则表明不在区域里,剩余树的数量加一
count++;
}
}
cout <<"\n";
cout << "剩余" << count << "棵树" << endl;
return 0;
}
运行结果: