(Mini-olimpiade3) Topolino e i palindromi (oli3_palindromi)
Transcript
(Mini-olimpiade3) Topolino e i palindromi (oli3_palindromi)
Corso Competenze Digitali oli3_palindromi • IT III Miniolimpiade, 20 - 29 marzo 2015 (Mini-olimpiade3) Topolino e i palindromi (oli3_palindromi) Limite di tempo: Limite di memoria: 1.0 secondi 256 MiB Topolino sta effettuando alcuni scavi archeologici per studiare le comunicazioni che avvenivano tra i membri dell’antica civiltà dei Mayali. Con l’esperienza acquisita grazie agli anni di ricerca, Topolino sa che i Mayali comunicavano esclusivamente per mezzo di palindromi. Una stringa si dice palindroma quando si può leggere in modo equivalente sia da destra che da sinistra (ovvero, è uguale alla sua versione “specchiata”), alcuni esempi di palindromi sono Anna, oppure Ed Irene se ne ride per finire con quello che Topolino preferisce in assoluto (sebbene lo consideri un’espressione dell’ignoranza che dilagava nel popolo dei Mayali in ambito di genealogia), il quale recita: I topi non avevano nipoti. Purtroppo, le iscrizioni che Topolino ha trovato fin ora sono molto danneggiate, molte delle lettere sono diventate completamente illeggibili a causa del tempo. Aiuta Topolino a capire se una certa iscrizione può appartenere o no alle comunicazioni del popolo dei Mayali. Dati di input Il file input.txt è composto da una sola riga di testo che rappresenta l’iscrizione che Topolino intende analizzare. La riga di testo può contenere spazi, lettere minuscole (dalla a alla z), ed il carattere * con il quale viene indicata una lettera talmente danneggiata da essere illeggibile. Dati di output Il file output.txt dovrà contenere una possibile interpretazione dell’iscrizione, qualora essa sia un valido candidato ad essere una comunicazione del popolo dei Mayali. Se non dovesse essere possibile interpretare l’iscrizione, allora il file dovrà contenere la frase: impossibile. Assunzioni • La lunghezza della riga di testo in input non supera i 1000 caratteri (se si usano gli array di char, fare attenzione ad allocare spazio sufficiente per il carattere terminatore!). • Se esistono diverse possibili interpretazioni dell’iscrizione, è sufficiente stamparne una qualunque. • Il carattere * sostituisce sempre e solo una lettera (da a a z), non può sostituire uno spazio. Esempi di input/output input.txt i topi n*n a*ev*no n*pot* input.txt la lazio vince lo scudetto oli3_palindromi output.txt i topi non avevano nipoti output.txt impossibile Pagina 1 di 1