0924 - 魔女っ娘ヒナくるん -Magic.07
Magic.07 『First comes rock...』
前回のあらすじ
地獄の全探索の末、ついに地底への入り口を発見したヒナくるんとアヤ。
戦う覚悟を決め、地底へ身を投じるのであった・・・
本編
アヤ
「地底への道、生ぬるい風が気持ち悪いわね・・・」
ヒナくるん
「そうね・・・、ってどうしたのアヤ?何か気付いたみたいだけど。」
アヤ
「この穴...深い!!」
ヒナくるん
「あっ、そう!!」
問題
地底への穴を進むヒナくるんとアヤ。
そこに前方から沢山の岩が飛んできた!!
この問題では、規定のターン数処理が行われる。
各ターンでは岩の出現、岩やヒナくるんの移動が行われる。
地底の穴はX*Yの空間に分割され、岩とヒナくるんはこの空間からはみ出ることはない。
つまり、移動情報が与えられた時に、枠をはみ出すような移動情報はその方向に対しては反映されない。
座標は左上を(0,0),右下を(W-1,H-1)とする。
ヒナくるんと岩は、大きさがあり、
左上座標が (X,Y) サイズが S の時は、
(X,Y) から (X+S-1,Y+S-1) の範囲内を、ヒナくるんや岩が占めている。
処理するターン数、ヒナくるん達の初期座標と大きさ、
岩の出現タイミングと位置と大きさ、ヒナくるん、岩の移動情報が与えられるので、
ヒナくるんが合計何個の岩に被弾してしまうかを出力せよ。
ここで被弾とは、岩とヒナくるんが重なることとする。
この問題に対して、放送事故 が起こることはない。
入出力形式
一行目に、処理が行われるターン数 N が与えられる。
二行目に、地底の穴の広さ X,Y が空白区切りで与えられる。
三行目に、ヒナくるんの初期位置の左上座標とサイズ HX,HY,HS が空白区切りで与えられる。
続いてNターンにあたり、以下の情報の入力が繰り返される。
現在のターンを示す文字列 "Turn i" が一行で与えられる。 次の行に、岩の出現回数 M が与えられる。 次のM行に渡り、出現した岩の左上座標とサイズ EX,EY,ES が空白区切りで与えられる。 ここで、W<EX+ES もしくは H<EY+ES になることはない。 次の行に、ヒナくるんと岩の移動情報が与えられる回数 L が与えられる。 次のL行に渡り、移動したオブジェクトのIDと、移動したXY方向 ID,MX,MY が空白区切りで与えられる。 ヒナくるんのIDは0で、岩は入力で出現した順番に1,2,3...とIDが与えられる。 移動処理は、その入力の瞬間行われる。 このL回の処理が終了した時点で、このターンでの被弾判定が行われる。
N W H HX HY HS Turn i Mi EX1 EY1 ES1 EX2 EY2 ES2 .. EXMi EYMi ESM Li ID1 MX1 MY1 ID2 MX2 MY2 .. IDLi MXLi MYLi
全ての入力の後、
ヒナくるんが被弾した岩の数 A を出力せよ。
ここで、同じ岩に複数回被弾しても、被弾した岩の数は一つであることに注意せよ。
A
制約
- 1 ≦ N,W,H ≦ 1000
- 0 ≦ HX,EX < W
- 0 ≦ HY,EY < H
- 1 ≦ HS,ES ≦ Min(W,H)
- 0 ≦ SUM(M),Li ≦ 1000
- 0 ≦ IDi ≦ SUM(M[0,i)) ターンiにおけるこれまでのMの総和
- -1 ≦ MX,MY ≦ 1
- 入力される数値は全て整数である。
入出力例
入力例
2 10 10 8 9 1 Turn 1 1 6 7 2 0 Turn 2 2 5 6 3 6 3 1 2 0 -1 1 2 1 1
出力例
1
この例での各ターンでの位置情報は、以下の通りとなる。
Turn 1
初期状態において、ヒナくるんは大きさ1で座標(8,9)に存在しており、
このターンでは、岩1が大きさ2で座標(6,7)に出現する。
このターンで、岩の移動情報は与えられておらず、
ヒナくるんが被弾した岩も存在しない。
Turn 2
このターンでは、岩2が大きさ3で座標(5,6)に、
岩3が大きさ1で座標(6,3)に出現する。
移動情報は二つ与えられており、
ヒナくるんが(-1,1)移動した情報が与えられているが、
枠をはみ出てしまうため、Y方向の移動は無効となっている。
岩2は(1,1)移動している。
このターン終了時点で、ヒナくるんは岩2に被弾した。
以上で全てのターンが終了した為、ヒナくるんの被弾した岩の数は1となる。