Run ID:132986

提交时间:2025-10-12 23:18:26

#include <iostream> #include <vector> #include <algorithm> int main() { // 使用 freopen 可以在本地调试时方便地重定向输入和输出。 // 在提交评测时,通常不需要这两行。 // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); int L, M; std::cin >> L >> M; // 布尔数组,表示马路上每个位置是否有树需要移除。 // 数组大小为 L+1,因为马路长度为 L,位置从 0 到 L,共 L+1 个点。 std::vector<bool> remove(L + 1, false); for (int i = 0; i < M; ++i) { int start, end; std::cin >> start >> end; // 标记从 start 到 end(包含两端)的所有树需要移除。 // 区域端点处的两棵树也需要移走,所以是 [start, end] 区间。 for (int j = start; j <= end; ++j) { remove[j] = true; } } int remaining_trees = 0; // 遍历马路上所有的位置,从 0 到 L。 for (int i = 0; i <= L; ++i) { // 如果 remove[i] 为 false,表示该位置的树不需要移除,计数。 if (!remove[i]) { remaining_trees++; } } std::cout << remaining_trees << std::endl; return 0; }