Dieses Bild wurde erstellt, indem 7 verschiedenfarbige Rechtecke übereinander gelegt wurden:
Das schwarze und das kastanienbraune Rechteck sind frei, dh keine anderen Rechtecke befinden sich über ihnen.
Schreiben Sie ein Programm, das ein solches Bild aufnimmt, und entfernen Sie jedes einzelne unversperrte Rechteck, und geben Sie das resultierende Bild aus.
Beispiel
Wenn Sie Ihr Programm auf dem obigen Bild ausgeführt haben und es weiterhin auf der Ausgabe ausgeführt haben, könnte es so weitergehen.
Lauf 1 - Schwarz entfernt (hätte kastanienbraun sein können):
Lauf 2 - Maroon entfernt (nur Auswahl):
Lauf 3 - Gelb entfernt (nur Auswahl):
Lauf 4 - Blau entfernt (hätte grün sein können):
Lauf 5 - Grün entfernt (nur Auswahl):
Lauf 6 - Brown entfernt (nur Auswahl):
Lauf 7 - Rot entfernt (nur Auswahl):
Alle zusätzlichen Läufe sollten dasselbe weiße Bild erzeugen.
Hoffentlich hat Stack Exchange keines dieser Bilder verlustbehaftet komprimiert.
Das Bild hat immer einen weißen Hintergrund und jedes Rechteck hat eine eindeutige RGB-Farbe, die nicht weiß ist.
Sie können davon ausgehen, dass das Bild immer als Satz überlappender Rechtecke interpretiert werden kann. Insbesondere können Sie davon ausgehen, dass für eine bestimmte Farbe das Pixel, dessen Farbe dem oberen Rand des Bilds am nächsten liegt, Teil der oberen Kante des Rechtecks dieser Farbe ist. Dasselbe gilt für die unteren, linken und rechten Kanten.
In diesem Bild befindet sich beispielsweise die Oberkante des roten Rechtecks direkt unter der Unterkante des gelben Rechtecks, da das orangefarbene Rechteck die alte rote Oberkante bedeckt:
In diesem Bild könnte das rote Rechteck zuerst entfernt werden (zusammen mit Schwarz / Kastanienbraun / Orange / Grau):
Wenn die Reihenfolge der unteren Rechtecke nicht eindeutig ist, können Sie ihnen eine beliebige Reihenfolge geben.
Beispielsweise könnte das linke Bild hier das mittlere oder das rechte werden:
Die Ausgabe sollte keine paradoxen Überlappungen aufweisen (daher sollte es möglich sein , sie mit dem Algorithmus des Malers zu erstellen). In diesem Bild ( danke user23013 ) müsste es also unter dem orangefarbenen Rechteck grün sein:
Zusätzliche Details
- Das Bild und die Rechtecke können beliebige Abmessungen haben.
- Die Rechtecke berühren möglicherweise den Bildrand.
- Es können bis zu 256 3 - 1 Rechtecke vorhanden sein.
- Wenn der Eingang vollständig weiß ist, sollte auch der Ausgang weiß sein.
- Sie können Bildbibliotheken verwenden.
- Die Eingabe sollte der Bilddateiname oder die Rohbilddaten sein. Es kann von stdin oder der Kommandozeile kommen.
- Die Ausgabe kann in dieselbe oder eine andere Bilddatei geschrieben, roh auf stdout gespuckt oder einfach angezeigt werden.
- Jedes gängige verlustfreie TrueColor- Bilddateiformat ist zulässig.
Die Einsendung mit den wenigsten Bytes gewinnt.