Küçük Chandler üzgün. Onu neşelendirmek için bir bulut çizin.
Not: Bir bulut çizmek onu neşelendirmez.
Bir daire, bir Kartezyen düzlemindeki dairenin x konumu olan bir Kartezyen düzlemindeki dairenin y konumu ve dairenin yarıçapı (x,y,r)
olduğu 3-dipli olarak tanımlanabilir . ve olumsuz olabilir. daima olumludur. Giriş 3 tuples ayrılmış boşluk şeklindeki dairelerin bir listesidir. Örneğin:x
y
r
x
y
r
3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8
3,1,1
Aracı "merkez noktası olan bir daire, 3,1
1 yarıçaplı. 3,2,1.5
Merkez noktası olan bir daireye anlamına gelen" 3,2
1,5 yarıçaplı.
Girdideki tüm bu çevreleri bir grafiğe çizersek, şöyle görünür (Yalnızca netlik için ızgara çizgileri ve etiketler ekledim; zorunlu değiller):
Tüm dairelerin nasıl yapışkan olduklarına dikkat edin . Yani hepsi birbiriyle örtüşüyor, öyle ki diğerlerinden ayrılmış küçük daireler grubu olmadan büyük bir grup oluşturuyorlar. Girişin uyumlu olacağı garanti edilir.
Şimdi, bu dairelerin oluşturduğu "sınırın" çevresini dolaşarak, diğer çizgilerin hiçbiri olmadan çizdiğimizi varsayalım. Tüm çevrelerin oluşturduğu silüetin sınırlarını çizmek gibi olur. Ortaya çıkan bulut şuna benzer:
Dolayısıyla, bu bulut yalnızca kenarlık oluşturan girdideki çemberlerin yaylarını çizerek, tek bir şekle neden olacak şekilde oluşturulmuştur. Başka bir deyişle, bulut yalnızca başka bir dairenin içinde olmayan yayların çizilmesiyle oluşur. Programınız yukarıda açıklanan biçimde girdi alacak ve ortaya çıkan bulutu görüntüleyen bir resim çıkartacaktır. Bulutun genel şekli doğru olmalıdır, ancak ölçek, renk, çizgi kalınlığı ve tepe noktalarına nasıl baktığı size bağlıdır. Bulutun görünür olması gerektiğine dikkat edin, "Bu program beyaz bir arka plan üzerinde beyaz bir bulut çizer" gibi bir şey çekemezsiniz, "Bu program sonsuz küçük ölçekte bir bulut çizer", "Bu program 0 ile bir bulut çizer çizgi kalınlığı ", vb. Ayrıca kenarlığın renginin dolgu veya arka plan renginden farklı olması gerektiğini unutmayın.
Başka bir örnek. Giriş:
1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7
Çıktı:
Bulutta bir "delik" varsa, deliği de çizmelisiniz. Giriş:
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
Çıktı:
İşte önemli bir kural: Programınız sadece sınırı oluşturan çizgileri çizmelidir. Bu, sadece daireleri tamamen çizemeyeceğiniz ve ardından daireleri beyaz bir dolgu ile biraz daha küçük çizeceğiniz anlamına gelmez - çünkü bu yöntem hala kenarlık oluşturmayan çizgiler çizer, daha sonra onları kapatır. Kuralın amacı, "daireleri çizin, ardından daireleri beyaz bir dolguyla tekrar çizin" uygulamalarını veya buna benzer bir şeyi engellemekti. Cevabın, gerçekte çizmeden önce bir şeyler nereye çizileceğini hesaplaması bekleniyor.
Bu kod golf, yani en kısa karakter sayısı kazanır.