Petit Chandler est triste. Dessine-lui un nuage pour lui remonter le moral.
Remarque: dessiner un nuage ne l'encouragera pas.
Un cercle peut être défini comme un triplet (x,y,r)
où x
est la position x du cercle sur un plan cartésien, y
la position y du cercle sur un plan cartésien et r
le rayon du cercle. x
et y
peut être négatif. r
est toujours positif. L'entrée est une liste de cercles sous la forme de 3-tuples séparés par des espaces. Par exemple:
3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8
Les 3,1,1
moyens "Un cercle avec un point central 3,1
avec un rayon. 3,2,1.5
Signifie" Un cercle avec un point central 3,2
avec un rayon de 1,5.
Si nous traçons tous ces cercles de l'entrée sur un graphique, cela ressemble à ceci (j'ai inclus des lignes de grille et des étiquettes pour plus de clarté; elles ne sont pas obligatoires):
Remarquez comme tous les cercles sont cohésifs . C'est-à-dire qu'ils se chevauchent tous de telle sorte qu'ils forment un grand groupe sans petits groupes de cercles séparés du reste. L'entrée est garantie d'être cohésive.
Supposons maintenant que nous traçons une ligne qui contourne la "frontière" formée par ces cercles, sans aucune des autres lignes. Ce serait comme dessiner la bordure de la silhouette formée par tous les cercles. Le nuage résultant ressemblerait à ceci:
Donc, ce nuage a été formé en ne dessinant que les arcs de cercle de l’entrée qui forment une bordure, ce qui donne une forme unique. En d'autres termes, le nuage est formé en dessinant uniquement les arcs qui ne se trouvent pas dans un autre cercle. Votre programme prendra en entrée sous la forme expliquée ci-dessus et produira une image qui affiche le nuage obtenu. La forme générale du nuage doit être correcte, mais l’échelle, la couleur, l’épaisseur de trait et son apparence aux sommets dépendent de vous. Notez que le nuage doit être visible, vous ne pouvez donc pas tirer quelque chose comme "Ce programme dessine un nuage blanc sur un fond blanc", "Ce programme dessine un nuage à une échelle infiniment petite", "Ce programme dessine un nuage avec 0 épaisseur de trait ", etc. Notez également que la couleur de la bordure doit être différente de celle du remplissage ou de l'arrière-plan.
Un autre exemple. Contribution:
1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7
Sortie:
S'il y a un "trou" dans le nuage, vous devez également dessiner le trou. Contribution:
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
Sortie:
Voici une règle importante: votre programme ne doit dessiner que les lignes qui forment la bordure. Cela signifie que vous NE POUVEZ PAS simplement dessiner complètement les cercles, puis dessiner les cercles légèrement plus petits avec un remplissage blanc - parce que cette méthode dessine toujours des lignes qui ne forment pas de bordure, elle les recouvre ensuite. Le but de la règle était d'empêcher les implémentations de "dessiner les cercles, puis de dessiner les cercles avec un remplissage blanc", ou quelque chose de ce genre. On s'attend à ce que la réponse calcule réellement où dessiner les choses avant de les dessiner.
C'est le code de golf, donc le plus petit nombre de personnages gagne.