Напомена: ово је незванична копија задатака. Као таква, не гарантује се да ће овај сајт бити одржаван, и немојте се изненадити ако са њега задаци одједном нестану.

Az első kvalifikációs versenyen elért kiváló eredményéért ajándékul Aleksa \(W \times H\) méretű, téglalap alakú kekszet kapott, amelyet úgy helyezett el a síkban, hogy csúcsainak koordinátái \((0, 0), (W, 0), (W, H)\) és \((0, H)\) legyenek. Örökös vetélytársa Pavle szemet vetett erre a kekszre, és elhatározta, hogy megeszi azt. Pavle állkapcsát \(R\) sugarú körnek tekinthetjük. Az \(i\)-edik percben a következő két esemény egyike következik be:

Előreláthatjátok-e Aleksa által mért eredményeket?

Bemenet

A szabványos bemenet első sorában négy természetes szám \(W, H, R, Q\) található, szóközökkel elválasztva. A következő \(Q\) sorban két vagy három szám található: \(1, x_i, y_i\) vagy \(2, x_i\), szóközzel elválasztva, amelyek az \(i\)-edik eseményt írják le.

Kimenet

Minden \(2\) típusú eseményre kiíratni egy valós számot, a megfelelő mérés eredményét. Amennyiben az adott mérés pontos eredménye \(b\), a program pedig \(a\) értéket ír ki, a kimenetet pontosnak tekintjük, ha érvényes, hogy \(\frac{|a-b|}{\max(1,b)} \leq 10^{-6}\).

1. példa

Bemenet

3 2 2 5
2 1
1 2 3
2 0
2 1
2 2

Kimenet

2.000000000000
2.000
1.267949192431
1

A példa magyarázata

Mielőtt Pavle leharapta volna a keksz egy darabját, bármely x koordinátán a mért érték \(H = 2\). Miután leharapta a keksz egy részét az \(x = 0\) koordinátán a hossz \(2\), \(x = 1\) értékre \(3 - \sqrt{3} \approx 1.268\) és \(x = 2\) értékre \(1\) (lásd az ábrán).

Korlátozások

A tesztpéldák 5 független csoportba oszthatók:

Megjegyzés

Hogy kiküszöböljétek a precizitási problémákat, a C++ nyelvben használjatok double vagy long double értéktípusokat, és az eredményeket pedig legalább \(9\) tizedes pontossággal írassátok ki.