ioi2011 logo

International Olympiad in Informatics 2011
2011年7月22-29日, タイ, パタヤ
Day 2 競技課題
日本語版

ELEPHANTS

バージョン: 1.2

踊る象 (Dancing Elephants)

N 頭の象が「ステージ」と呼ばれる直線上で踊る「踊る象 (Dancing Elephants) 」はパタヤのすごいショーとして知られている.

何年もの訓練により, このショーの象は多くの驚くべきダンスを踊れるようになっている. ショーはいくつかの演技からなる. それぞれの演技は, ちょうど 1 頭の象がかわいいダンスを踊る. 踊りながら, 他の位置に移動することもある.

ショーのプロデューサー達はショー全体の写真が掲載されている本を制作したい. 演技が終わるごとに, 観客から見えるすべての象の写真を撮りたい.

ショーの間, 複数の象が同じ位置にいることがある. この場合, 象は同じ位置の他の象の後ろに立つ.

1 つのカメラで長さ L の区間 (端を含む) にいる象の写真を撮ることができる. 象はステージ全体に広がることもあるので, すべての象のスナップ写真を同時に撮るには複数のカメラが必要かもしれない.

例として, L = 10 とし象がステージ上の 10, 15, 17, 20 の位置にいる場合を考える. このとき, 下図で示すように 1 つのカメラで象の写真を撮ることができる (三角形は象を, 台形はカメラを表す).

次の演技で, 位置 15 の象は位置 32 へ踊って移動する. この演技の後, スナップ写真を撮るためには少なくとも 2 台のカメラが必要である.

次の演技で, 位置 10 の象は位置 7 へ移動する. この象の並び方では, すべての象の写真を撮るために 3 台のカメラが必要である.

この対話型課題では, それぞれの演技の後に写真を撮るために必要なカメラの最小台数を決定しなければならない. 演技の後, 必要なカメラの台数は増加するかもしれないし, 減少するかもしれないし, そのままかもしれない.

課題 (Your task)

次のプロシージャーを実装せよ:

例 (Example)

N = 4, L = 10, 象の初期位置が

X =  10
15
17
20

の場合を考える.

最初, プロシージャー init は上記のパラメータで呼び出される. その後, プロシージャー update が 1 つの演技ごとに 1 回ずつ呼び出される. 以下に呼び出しと正しい返り値の例を示す:

  演技     パラメータ     返り値  
1 update(2, 16) 1
2 update(1, 25) 2
3 update(3, 35) 2
4 update(0, 38) 2
5 update(2, 0) 3

小課題 (Subtasks)

小課題 1 (10 点)

小課題 2 (16 点)

小課題 3 (24 点)

小課題 4 (47 点)

小課題 5 (3 点)

実装の詳細 (Implementation details)

制限 (Limits)

インターフェース (API) (Interface (API))