Mały Chandler jest smutny. Narysuj mu chmurę, aby go pocieszyć.
Uwaga: narysowanie chmury tak naprawdę go nie poprawi.
Okrąg można zdefiniować jako 3- krotny, (x,y,r)
gdzie x
pozycja x koła na płaszczyźnie kartezjańskiej, y
pozycja y koła na płaszczyźnie kartezjańskiej i r
jest promieniem okręgu. x
i y
może być negatywny. r
jest zawsze pozytywne. Dane wejściowe to lista okręgów w postaci 3-krotek oddzielonych spacjami. Na przykład:
3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8
Te 3,1,1
środki „okręgu z punktem środkowym w 3,1
z 1 promień. 3,2,1.5
Oznacza” okręgu z punktem środkowym w 3,2
1,5 promienia.
Jeśli narysujemy wszystkie te okręgi danych wejściowych na wykresie, wygląda to tak (zamieściłem linie siatki i etykiety tylko dla przejrzystości; nie są one wymagane):
Zauważ, że wszystkie kręgi są spójne . Oznacza to, że wszystkie one zachodzą na siebie tak, że tworzy jedną dużą grupę bez małych grup kół oddzielonych od reszty. Wejście jest gwarantowana być spójna.
Załóżmy, że teraz narysujemy linię, która biegnie wokół „granicy” utworzonej przez te koła, bez żadnych innych linii. To byłoby jak narysowanie granicy sylwetki utworzonej przez wszystkie koła. Powstała chmura wyglądałaby mniej więcej tak:
Ta chmura została utworzona przez narysowanie tylko łuków okręgów na wejściu, które tworzą granicę, w wyniku czego powstaje pojedynczy kształt. Innymi słowy, chmura jest tworzona tylko przez rysowanie łuków, które nie znajdują się w innym okręgu. Twój program pobierze dane wejściowe w powyższej formie i wyświetli obraz, który wyświetli wynikową chmurę. Ogólny kształt chmury musi być prawidłowy, ale to od Ciebie zależy skala, kolor, grubość linii i sposób, w jaki wygląda na wierzchołki. Zauważ, że chmura musi być widoczna, więc nie możesz wyciągnąć czegoś takiego: „Ten program rysuje chmurę na białym tle”, „Ten program rysuje chmurę w nieskończenie małej skali”, „Ten program rysuje chmurę z 0 grubość linii ”itp. Należy również pamiętać, że kolor obramowania musi różnić się od koloru wypełnienia lub tła.
Inny przykład. Wejście:
1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7
Wynik:
Jeśli w chmurze jest „dziura”, również należy narysować dziurę. Wejście:
0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4
Wynik:
Oto ważna zasada: twój program musi rysować tylko linie tworzące granicę. Oznacza to, że NIE MOŻESZ po prostu narysować okręgów w pełni, a następnie narysować koła nieco mniejsze za pomocą białego wypełnienia - ponieważ ta metoda nadal rysuje linie, które nie tworzą granicy, po prostu je zakrywa. Celem tej reguły było zapobieżenie „narysowaniu okręgów, a następnie narysowaniu kół ponownie za pomocą białego wypełnienia” lub czegoś podobnego. Oczekuje się, że odpowiedź faktycznie obliczy, gdzie narysować rzeczy przed narysowaniem.
To jest golf golfowy, więc wygrywa najmniejsza liczba znaków.