校门外的树



【描述】

某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即012L,都种有一棵树。

马路上有一些区域要用来建地铁,这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

【输入】

输入的第一行有两个整数L1L10000)和 M1M100),L代表马路的长度,M代表区域的数目,LM之间用一个空格隔开。

接下来的M行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。

【输出】

输出一个整数,表示马路上剩余的树的数目。

【输入示例】

500 3

150 300

100 200

470 471

【输出示例】

298

C代码】

---------------

#include<stdio.h>

#defineARRAY_SIZE 10000

intmain(void) {

int array[ARRAY_SIZE + 1];

    int i, j, length, m;

    int start, end;

    int count = 0;

    scanf("%d%d", &length,&m);

    for(i = 0; i <= length; ++i)

        array[i] = 1;

    for(i = 0; i < m; ++i) {

        scanf("%d%d", &start,&end);

        for(j = start; j <= end; ++j)

            array[j] = 0;

    }

    for(i = 0; i <= length; ++i)

        if(array[i] != 0)

            ++count;

    printf("%d\n", count);

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值