Per illuminare il salone delle IOI '98 si hanno a disposizione un set di N lampade colorate e numerate da 1 a N. Le lampade sono connesse a 4 pulsanti:
Vi viene fornito il valore del contatore C e varie informazioni sullo stato finale di alcune lampade. Si richiede di scrivere un programma che determini tutte le possibili configurazioni finali delle N lampade in accordo con le informazioni fornite, senza ripetizioni.
Il file di input, di nome input.txt, contiene sulla prima riga il singolo intero N e sulla seconda il valore del contatore C. La terza riga contiene la lista delle lampade che sicuramente sono accese nella configurazione finale, mentre la riga sottostante (la quarta) contiene la lista dei numeri di lampade che sicuramente sono spente nella configurazione finale.
Non si possiedono informazioni sulle lampade il cui numero non compare in nessuna delle due liste. Queste potranno quindi essere accese o spente, nella configurazione finale. Per la terza e la quarta riga vale la regola che i numeri delle lampade che compaiono nella lista sono separati da spazio e terminati da un -1.
Il file di output, di nome output.txt, deve contenere tutte le possibili configurazioni delle lampade che rispettano le informazioni fornite nel file di input, senza ripetizioni. L'ordine con il quale le configurazioni vengono elencate non è rilevante. Ogni riga del file di output deve contenere N caratteri, senza separatori. Il carattere i-esimo rappresente lo stato dell'i-esima lampada in quella particolare configurazione e può essere uguale solo a 1 (che indica che la lampada è accesa) o 0 (lampada spenta).
Si fanno le seguenti assunzioni:
10 1 -1 7 -1
In questo caso ci sono 10 lampade e solo un bottone è stato premuto. La lampada n. 7 è spenta nella configurazione finale.
0000000000 0110110110 0101010101
In questo caso ci sono tre possibili configurazioni finali: