Sferik Güzgülər
Çox-çox uzaqlarda, bir qalaktikada, müxtəlif radiuslara malik N sfera var idi.
Bu sferalar güzgü kimi idi, yəni əks etdirici səthlərə malik idilər...
Siz qalaktikanın başlanğıc nöqtəsində (0, 0, 0) dayanırsınız və (u, v, w) istiqamətinə lazer şüası göndərirsiniz. Şüa düz xətt boyunca hərəkət edir.
Lazer şüası I nöqtəsindən Q nöqtəsində sferanın səthinə dəyəndə, N nöqtəsi sferanın mərkəzi ilə Q nöqtəsini birləşdirən xətt üzərində sferanın xaricində yerləşən nöqtə olsun. Əks olunan şüa R istiqamətinə gedir ki, bu da aşağıdakı şərtlərə cavab verir: (1) R nöqtəsi I, Q və N nöqtələrinin yaratdığı müstəvidə yerləşir, (2) IQN = NQR, Şəkil 1-də göstərildiyi kimi.
Şəkil 1: Lazer şüasının əks olunması
Bir neçə dəfə əks olunduqdan sonra, nəhayət, müşahidəmizdən kənara çıxır. Sizin vəzifəniz son əks olunma nöqtəsini müəyyən edən proqram yazmaqdır.
Giriş verilənləri
Giriş bir neçə datasetdən ibarətdir, hər biri aşağıdakı formatdadır.
N
u v w
x_1 y_1 z_1 r_1
...
x_N y_N z_N r_N
Datasetin birinci sətri sferaların sayını göstərən müsbət tam ədəd N ehtiva edir. Növbəti sətrdə u, v və w tam ədədləri tək boşluqlarla ayrılmışdır, burada (u, v, w) lazer şüasının başlanğıc nöqtəsindən ilkin istiqamətidir.
Növbəti N sətrin hər biri tək boşluqlarla ayrılmış dörd tam ədəd ehtiva edir. i-ci sətir i-ci sferaya aiddir və bu ədədlər sferanın mərkəz mövqeyini (x_i, y_i, z_i) və radiusunu r_i göstərir.
N, u, v, w, x_i, y_i, z_i və r_i aşağıdakı şərtlərə cavab verir.
1 ≤ N ≤ 100
−100 ≤ u, v, w ≤ 100
−100 ≤ x_i, y_i, z_i ≤ 100
5 ≤ r_i ≤ 30
u^2 + v^2 + w^2 > 0
Hər hansı iki sferanın səthləri arasındakı məsafənin ən az 0.1 olduğunu qəbul edə bilərsiniz. Həmçinin, başlanğıc nöqtəsinin (0, 0, 0) hər hansı sferanın xaricində yerləşdiyini və hər hansı sferanın səthindən ən az 0.1 məsafədə olduğunu qəbul edə bilərsiniz.
Şüanın sferaların səthlərindən ən az bir dəfə və ən çox beş dəfə əks olunduğu məlumdur. Hər əks olunma nöqtəsi üçün əks olunma bucağının (yəni θ Şəkil 1-də) sferanın mərkəzi ilə əks olunma nöqtəsini birləşdirən xətt arasındakı bucaqdan az olduğunu qəbul edə bilərsiniz.
Son dataset tək sıfır ehtiva edən bir sətr ilə tamamlanır.
Çıxış verilənləri
Girişdəki hər dataset üçün, son əks olunma nöqtəsinin x-, y- və z-koordinatlarını tək boşluqlarla ayrılmış bir sətrdə çap etməlisiniz. Heç bir çıxış sətri əlavə simvollar ehtiva etməməlidir.
Çıxışdakı heç bir koordinat dəyərinin xətası 0.01-dən böyük olmamalıdır.