道路上にあるどのように多くの木を計算

説明質問
並木道路のゲート長L外部学校、隣り合う木の間隔は1メートルです。我々は、軸の位置番号0、他端位置Lに、軸として道路の一端を道路番号を置くことができ、各整数軸点、すなわち、0,1,2、...、L、木の種であります。地下鉄を構築するために使用する道路上のいくつかの分野がありますので。数は、その軸線とこれらの領域は、開始点と終了点を表します。整数である、部分領域間にオーバーラップすることができる領域の任意の既知の開始点と終了点の座標。さて、(端部領域において、2つのツリーを含む)我々これらの地域の木を除去しました。あなたの仕事は、これらの木の計算は、道路上にあるどのように多くの木々、削除されています。
入力形式
最初の行は数Lとの間の空間によって分離された2つの整数L(1 <= L <= 10000)及びM(1 <= M <= 100)は、地域のために、L及びM M、道路の長さを表す有しますオープン。次のMラインはスペースで区切られた2つの異なる整数、領域の開始点と終了点を示す座標を含みます。
出力フォーマット
これは、道路上の残りの木の数を表す整数のみを含む行を含みます。
サンプル入力
500 3 
150 300 
100 200 
470 471
サンプル出力
298
#include <stdio.h>
int main()
{
    int l,m,a[100001],x,y,i,sum,j;
    while(scanf("%d%d",&l,&m)!=EOF){
        sum=0;
        for(i=0;i<=l;i++){
            a[i]=1;
        }
        for(i=0;i<m;i++){
            scanf("%d%d",&x,&y);
            for(j=x;j<=y;j++){
                a[j]=0;
            }
        }
        for(i=0;i<=l;i++){
            sum+=a[i];
        }
        printf("%d\n",sum);
    }
    return 0;
}

公開された32元の記事 ウォンの賞賛9 ビュー70000 +

おすすめ

転載: blog.csdn.net/yi__cao/article/details/78515982