1-6-06:校门外的树
2016-05-03 17:10
323 查看
描述
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
输入第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点 和终止点的坐标。
对于20%的数据,区域之间没有重合的部分;
对于其它的数据,区域之间有重合的情况。输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。样例输入
样例输出
某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。
由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
输入第一行有两个整数L(1 <= L <= 10000)和 M(1 <= M <= 100),L代表马路的长度,M代表区域的数目,L和M之间用一个空格隔开。接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点 和终止点的坐标。
对于20%的数据,区域之间没有重合的部分;
对于其它的数据,区域之间有重合的情况。输出包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。样例输入
500 3 150 300 100 200 470 471
样例输出
298
#include<stdio.h> int main() { int a[10001]={0}; int L,M,l1,l2,c=0; scanf("%d%d",&L,&M); for(int i=1;i<=M;i++) { scanf("%d%d",&l1,&l2); for(int t=l1;t<=l2;t++) a[t]=1; } for(int i=0;i<=L;i++) if(a[i]==0) c++; printf("%d\n",c); return 0; }
相关文章推荐
- iOS使用Object-C自定义cordova插件(二)
- 如何实现单服务器300万个长连接的?-来自知乎的经典问答
- javascript 手机号码正则表达式验证函数
- android webview设置以及与h5交互
- shell 中的单行注释和多行注释
- Python获取指定文件夹下的文件名
- IOS MenuController初步了解
- 知问前端——验证插件(二)
- [置顶] 新博客地址
- Jetty的工作原理以及与Tomcat的比较
- 1.JavaScript如何使用
- 吝啬的国度
- ELASTICSEARCH几个问题的解决
- 开源新闻速递(160503):Chrome 超越 IE ,市场占有率第一
- 固定fotter
- 关于单例模式的一些讨论(实现单例模式)
- 【Halcon】霍夫直线检测hough_lines
- Fragment中onOptionsItemSelected不响应
- 二叉搜索树与双向链表
- 我对什么都感兴趣,可我迷茫了(转载)