道路の整数L(1 <= L <= 10000)の長さを有し、一方はラインセグメントの長手方向軸Lの数を想像することができ、出発点は、座標原点、ですべての整数座標点ツリー、すなわち0,1であります、2、...、Lの総L + L + 1は、ツリー上の位置を有します。今いくつかの木を除去するために、ツリー除去部は、次のような100〜200は、全てのツリー(含む)100-200から除去表し、数字の組で表されます。インターバルの間に重複があってもよく、M(1 <= M <= 100)の間隔があってもよいです。今、ツリーのすべてのセクションの要件を除去した後に残る木の数。
説明を入力します。
二つの整数L(1 <= L <= 10000) 及びM(1 <= M <= 100)。 次に数字の対と整数M群、各あります。
出力説明:
入力データは、各入力データの複数のセットであってもよいし、ツリー内の残りの木を除去した後のすべてのセクションの数を表す数値を出力します。
例1
エントリー
500 3 100 200 150 300 470 471
輸出
298
問題解決のためのアイデア
このような問題について、考えはあまりにも重要であり、私はこの後出会い同様のトピックでは、この巧妙な方法を考えることができます願っています:
1、次に0に、すべての添字集合のすべての数字を削除する、1アレイ、すべてのセットを作成します
2、そして最後にアレイを介して、アレイが0のカウント数、出力缶です。
PS:最初の配列については、初期時与えられた定義に注意すべき点があり、[L] INT ____ = {0}いくつかのコンパイラは、合法的ではありません
1つの#include <iostreamの> 2 使用して 名前空間STDを、 3 INT メイン() 4 { 5 int型の L、M、カウント= 0 ; 6 CIN >> L >> M。 7 INT [ 10001 ] = { 0 }。 8 一方(M-- ) 9 { 10 のint L、R。 11 CIN >> L >> R。 12 のためには、(int型 iは= 1- 1 ; iは<R、iは++ ) 13 { 14 [I] = 1 。 15 } 16 } 17 のための(int型 i = 0 ; iはLを<; iは++ ) 18 { 19 であれば([I] == 0)のカウント++ 。 20 } 21 COUT <<カウント+ 1 << ENDL。 22 リターン 0 ; 23 }