校门外的树

【描述】w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

某校大门外长度为的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在的位置;数轴上的每个整数点,即,都种有一棵树。w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输入】w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

第一行有两个整数校门外的树,L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

对于20%的数据,区域之间没有重合的部分;w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

对于其它的数据,区域之间有重合的情况。w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【输出】w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【样例输入】w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

500 3
150 300
100 200
470 471

【样例输出】w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

298

【参考程序】w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

C语言版本w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库
 w5U100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

  1. # include <cstdio> 
  2.  
  3. int main() 
  4.     int t[10005] = { 0 }; 
  5.     int L, M, a, b, cnt = 0; 
  6.     scanf("%d%d", &L, &M); 
  7.     for (int i = 0; i <= L; i++) 
  8.     { 
  9.         t[i] = 1; 
  10.     } 
  11.     for (int i = 0; i < M; i++) 
  12.     { 
  13.         scanf("%d%d", &a, &b); 
  14.         for (int j = a; j <= b; j++) 
  15.         { 
  16.             t[j] = 0; 
  17.         } 
  18.     } 
  19.     for (int i = 0; i <= L; i++) 
  20.     { 
  21.         cnt += t[i]; 
  22.     } 
  23.     printf("%d", cnt); 
  24.     return 0; 
C++版本
  1. # include <iostream> 
  2.  
  3. using namespace std; 
  4.  
  5. int main() 
  6.     int t[10005] = { 0 }; 
  7.     int L,M,a,b,cnt=0; 
  8.     cin >> L >> M; 
  9.     for (int i = 0; i <= L; i++) 
  10.     { 
  11.         t[i] = 1; 
  12.     } 
  13.     for (int i = 0; i < M; i++) 
  14.     { 
  15.         cin >> a >> b; 
  16.         for (int j = a; j <= b; j++) 
  17.         { 
  18.             t[j] = 0; 
  19.         } 
  20.     } 
  21.     for (int i = 0; i <= L; i++) 
  22.     { 
  23.         cnt += t[i]; 
  24.     } 
  25.     cout << cnt; 
  26.     return 0; 

关 键 词

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢