Questa immagine è stata realizzata sovrapponendo 7 rettangoli di colori diversi uno sopra l'altro:
I rettangoli neri e marroni non sono ostruiti , ovvero nessun altro rettangolo è sopra di essi.
Scrivi un programma che contiene un'immagine come questa e rimuovi qualsiasi singolo rettangolo libero, producendo l'immagine risultante.
Esempio
Se hai eseguito il tuo programma sull'immagine sopra e hai continuato a eseguirlo nuovamente sull'output, potrebbe progredire in questo modo.
Esegui 1 - Nero rimosso (avrebbe potuto essere marrone):
Run 2 - Maroon rimosso (unica scelta):
Esegui 3 - Giallo rimosso (unica scelta):
Esegui 4 - Blu rimosso (avrebbe potuto essere verde):
Esegui 5 - Verde rimosso (unica scelta):
Esegui 6 - Brown rimosso (unica scelta):
Esegui 7 - Rosso rimosso (unica scelta):
Qualsiasi corsa aggiuntiva dovrebbe produrre la stessa immagine bianca.
Si spera che Stack Exchange non abbia compresso in modo perduto nessuna di queste immagini.
L'immagine avrà sempre uno sfondo bianco e ogni rettangolo avrà un colore RGB unico che non è bianco.
Si può presumere che l'immagine possa sempre essere interpretata come un insieme di rettangoli sovrapposti. In particolare, puoi supporre che, per un particolare colore, il pixel con quel colore più vicino alla parte superiore dell'immagine sia parte del bordo superiore del rettangolo di quel colore. Lo stesso vale per i bordi inferiore, sinistro e destro.
Quindi, ad esempio, in questa immagine, il bordo superiore del rettangolo rosso sarebbe appena sotto il bordo inferiore del rettangolo giallo, poiché il rettangolo arancione copriva il vecchio bordo superiore rosso:
In questa immagine, il rettangolo rosso potrebbe essere rimosso per primo (insieme a nero / marrone / arancione / grigio):
Quando l'ordine dei rettangoli inferiori è ambiguo, puoi dare loro qualsiasi ordine.
Ad esempio, l'immagine a sinistra qui potrebbe diventare la metà o la destra:
L'output non dovrebbe avere sovrapposizioni paradossali (quindi dovrebbe essere possibile farlo con l' algoritmo del pittore ). Quindi in questa immagine ( grazie user23013 ), dovrebbe essere verde sotto il rettangolo arancione:
dettagli aggiuntivi
- L'immagine e i rettangoli possono avere qualsiasi dimensione.
- I rettangoli possono toccare il bordo dell'immagine.
- Possono esserci fino a 256 3 - 1 rettangoli.
- Se l'input è completamente bianco, anche l'output dovrebbe essere.
- È possibile utilizzare librerie di immagini.
- L'input deve essere il nome del file di immagine o i dati di immagine grezzi. Può provenire da stdin o dalla riga di comando.
- L'output può essere scritto nello stesso o in un altro file di immagine, inviato in raw allo stdout o semplicemente visualizzato.
- È consentito qualsiasi formato di file immagine truecolor senza perdita comune .
Vince l'invio con il minor numero di byte.