Qəzaya Uğra və Get(relians)
Goreliyalılar, kainatı fəth edərək yeni dünyaları ələ keçirmək üçün səyahət edən döyüşkən bir irqdir. Adətən, onların kosmik döyüşləri olduqca birtərəfli olur, lakin bəzən hətta Goreliyalılar da qarşılaşmanın ən pisini yaşayır. Belə bir məğlubiyyət döyüşü zamanı, Goreliyalıların kosmik gəmisi o qədər zədələndi ki, onlar aşağıdakı planetə təxliyə olunmalı oldular. Xaos səbəbindən (və qaçış kapsulları çox dəqiq olmadığı üçün) Goreliyalılar planetin böyük bir sahəsinə səpələndilər (lakin kifayət qədər kiçik bir sahə ki, müvafiq planet səthini sferik deyil, düz modelləşdirə bilərik). Sizin işiniz onların yenidən birləşmə cəhdlərini izləməkdir. Xoşbəxtlikdən, hər bir qaçış kapsulu Goreliyalıya planetdəki cari koordinatlarını bildirə bilən bir lokatorla, həmçinin digər Goreliyalılarla əlaqə saxlamaq üçün istifadə edilə bilən bir radio ilə təchiz olunmuşdu. Təəssüf ki, radioların diapazonu birinin nə qədər gücə malik olduğuna görə olduqca məhduddur.
Goreliyalı yad planetə enəndə ilk işi radioları yoxlamaq və digər Goreliyalılarla əlaqə saxlaya bilib-bilmədiyini görməkdir. Əgər bacararsa, onlarla görüş nöqtəsi təyin edir və sonra həmin nöqtəyə toplaşırlar. Birlikdə olduqda, radiolarının enerji mənbələrini birləşdirə bilirlər ki, bu da onlara daha böyük bir radio diapazonu verir. Sonra prosesi təkrar edirlər—kimə çata biləcəklərini görmək, görüş nöqtəsi təyin etmək, radiolarını birləşdirmək—nəhayət daha çox Goreliyalı ilə əlaqə saxlaya bilməyənə qədər.
Goreliyalı texnologiyası, ən azı birinin radio diapazonu aralarındakı məsafəni əhatə etdiyi müddətcə iki tərəfli əlaqəyə imkan verir. Məsələn, təsəvvür edin ki, Alisanın radio diapazonu 40 km, Bobun isə 30 km-dir, lakin onlar 45 km məsafədədirlər (Şəkil 1). Heç birinin digərinə çatmaq üçün kifayət qədər radio diapazonu olmadığı üçün danışa bilməzlər. Lakin, təsəvvür edin ki, onlar yalnız 35 km məsafədədirlər (Şəkil 2). Bobun radiosu hələ də Alisaya çatmaq üçün kifayət qədər diapazona malik deyil, lakin bu əhəmiyyətli deyil—onlar hələ də danışa bilərlər, çünki Alisanın radiosu Boba çatmaq üçün kifayət qədər diapazona malikdir.
Əgər bir Goreliyalı digər Goreliyalılarla uğurla əlaqə saxlayarsa, onlar bütün yerlərinin ortalaması olan nöqtədə görüşəcəklər. Alisa və Bobun vəziyyətində bu sadəcə A və B-nin orta nöqtəsi olacaq (Şəkil 3). Qeyd edək ki, Goreliyalılar səyahət edərkən radiolarını söndürürlər; onlar görüş nöqtəsində toplaşana qədər başqaları ilə əlaqə saxlamağa çalışmayacaqlar. Goreliyalılar görüşdükdən sonra, radiolarını birləşdirərək daha böyük diapazonlu yeni bir radio yaradırlar. Xüsusilə, yeni radio ilə əhatə olunan ərazi köhnə radio ilə əhatə olunan ərazilərin cəminə bərabərdir. Bizim nümunəmizdə, Alisanın diapazonu 40 km idi, beləliklə onun radiosu 1600π km ərazini əhatə edirdi. Bobun radiosu 900π km ərazini əhatə edirdi. Beləliklə, radiolarını birləşdirdikdə 2500π km ərazini əhatə edə bilirlər—yəni onların diapazonu 50 km olur. Bu nöqtədə onlar yenidən digər Goreliyalılarla əlaqə saxlamağa çalışacaqlar.
Bu proses daha çox Goreliyalı ilə əlaqə saxlamaq mümkün olmayana qədər davam edir. Məsələn, təsəvvür edin ki, aşağıdakı Goreliyalılar hamısı enib və hamısının radio diapazonu 30 km-dir: Alisa (100, 100), Bob (130, 80), Keti (80, 60) və Devid (120, 150). Bu nöqtədə, heç bir Goreliyalı başqası ilə əlaqə saxlaya bilmir (Şəkil 5). İndi Eddi (90, 80) mövqeyində enir (Şəkil 6). Eddi Alisa və Keti ilə əlaqə saxlaya bilir, beləliklə onlar yerlərinin ortalaması olan (90, 80) nöqtəsində görüşməyə qərar verirlər. Radiolarını birləşdirdikdə onlara √2700 ≈ 51.96 km diapazon verir (Şəkil 7).
İndi yeni təkmilləşdirilmiş diapazonları ilə yenidən yoxlayırlar və Bobla əlaqə saxlaya biləcəklərini görürlər. Beləliklə, Bobla (110, 80) nöqtəsində görüşürlər və radiolarını birləşdirərək 60 diapazonlu yeni bir radio əldə edirlər (Şəkil 8). Təəssüf ki, bu, Devidə çatmaq üçün kifayət deyil, beləliklə Devid təcrid olunmuş qalır.
Giriş verilənləri
Giriş bir və ya daha çox məlumat dəstindən ibarət olacaq. Hər bir məlumat dəsti bu dəst üçün Goreliyalıların sayını təmsil edən bir tam ədədlə başlayacaq (1 ≤ ≤ 100). = 0 dəyəri girişin sonunu bildirəcək.
Sonra hər biri Goreliyalının eniş etdiyi x və y koordinatlarını və radio diapazonunu təmsil edən üç tam ədəd olan sətirlər gələcək (0 ≤ ≤ 1000, 0 ≤ ≤ 1000 və 1 ≤ ≤ 1000). Qeyd edək ki, yalnız Goreliyalıların ilk koordinatları/diapazonu tam ədəd olacaq; digər Goreliyalılarla birləşdikdən sonra onlar artıq tam ədəd olmaya bilər. Bütün hesablamalar üçün ikiqat dəqiqlikli arifmetikadan istifadə etməlisiniz.
Goreliyalılar giriş faylında göründükləri sırada enirlər. Bir Goreliyalı enəndə, əlaqə saxlaya biləcəyi hər hansı bir Goreliyalı ilə birləşir və proses daha çox birləşmə edilə bilməyənə qədər davam edir. Növbəti Goreliyalı, bütün əvvəlki birləşmələr tamamlanana qədər enmir.
Çıxış verilənləri
Çıxış hər bir məlumat dəsti üçün prosesin sonunda qalan müstəqil Goreliyalı qruplarının sayını bildirən bir sətir olacaq.