[NOIP 2005普及グループ]校門外の木


タイトルリンク
ある校門の外の長さlの道路には木が並んでいて、2本の隣接する木の間の間隔は1メートルです.私たちは道路を1つの数軸と見なすことができて、道路の一端は数軸0の位置にあって、もう一端はlの位置にあります;数軸上の各整数点、すなわち0,1,2,...,lには、木が植えられている.
道路には地下鉄を建設するための地域があるからです.これらの領域は、数軸上の開始点と終了点で表されます.任意の領域の始点と終点の座標が整数であることが知られており、領域の間に重複する部分がある可能性がある.これらの領域のツリー(領域の端点にある2本のツリーを含む)を移動します.あなたの任務は、これらの木を全部移した後、道路に何本の木があるかを計算することです.
入力フォーマットの1行目には、道路の長さlと領域の数mをそれぞれ表す2つの整数がある.
次にm行、各行の2つの整数u,vは、1つの領域の開始点と終了点の座標を表す.
出力フォーマットは、これらのツリーを移動した後、道路に残っている樹木の数を示す整数行を出力します.
入出力サンプル入力
500 3
150 300
100 200
470 471

しゅつりょく
298

コード:
#include
using namespace std;
int num[12345] = {
     0};
int main()
{
     
	int L, M, x, y, count = 0;
	cin >> L >> M;
	while(M--)
	{
     
		cin >> x >> y;
		for(int i = x; i <= y; i++) num[i] = 1;
	}
	for(int i = 0; i <= L; i++)
        if(num[i] == 0)
            count++;
	cout << count;
	return 0;
}