Vogliamo risolvere un puzzle costituito da k permutazioni distinte degli elementi 1, 2, ..., n. Il nostro obiettivo e' quello di trasformare ciascuna di esse nella permutazione identica avvalendoci solo di mosse consentite. Ad esempio, dalla prima riga del seguente file leggiamo k=3 ed n=8, input.txt 8 3 1 2 3 4 5 6 8 7 8 2 5 3 4 6 7 1 1 2 3 4 5 6 7 8 e nelle 3 rimanenti righe troviamo le n=3 permutazioni che costituiscono il puzzle da risolvere: p[1] = 1 2 3 4 5 6 8 7, p[2] = 8 2 5 3 4 6 7 1, p[3] = 1 2 3 4 5 6 7 8. La terza permutazione e' gia' pertanto un'identita', ma vorremmo risistemare anche le altre due righe. Purtroppo non e' consentito di agire su una sola riga: l'unica mossa consentita consiste nell'effettuare, su ciascuna delle righe, uno scambio di due elementi qualsiasi della riga. La seguente potrebbe pertanto essere una sequenza di configurazioni ottenibile partendo da quella sopra. p[1] --> 1 2 3 4 5 6 7 8 -> 2 1 3 4 5 6 7 8 -> 1 2 3 4 5 6 7 8 p[2] --> 1 2 5 3 4 6 7 8 -> 1 2 3 5 4 6 7 8 -> 1 2 3 4 5 6 7 8 p[3] --> 2 1 3 4 5 6 7 8 -> 1 2 3 4 5 6 7 8 -> 2 1 3 4 5 6 7 8 Nell'ultima configurazione siamo riusciti a sistemare ben 2 delle 3 righe, ed e' possibile convincersi che in questo caso non e' possibile sistemare tutte e 3 le righe. Ecco pertanto quale file di output dovrebbe generare il vostro programma per fare punteggio pieno su questa istanza esempio: output.txt 2 3 7 8 1 8 1 2 1 2 3 4 1 2 1 2 4 5 1 2 dove la prima riga significa che e' possibile sistemare massimo 2 delle righe e che seguira' nelle 3 righe successive la descrizione di una strategia che realizza tale obiettivo in 3 mosse. Ciascuna delle 3 mosse e' descritta su una riga diversa, con la riga (i+1)-esima che descrive la i-esima mossa. Ad esempio, la seconda riga descrive cosi' la prima mossa: nella permutazione p[1] scambia gli elementi nelle posizioni 7 ed 8, nella permutazione p[2] scambia gli elementi nelle posizioni 1 ed 8, nella permutazione p[3] scambia gli elementi nelle posizioni 1 e 2. Assunzioni: - tempo limite = 1 secondo (user time); - n <= 10000 e k <= 100; - la correttezza della sola prima riga del file output.txt e' sufficiente per aggiudicarsi un punteggio parziale su tale istanza (tra 0.3 e 0.5). Nota: vi lascio a disposizione un verificatore per la soluzione riportata in output.txt. Tale verificatore non valuta l'ottimalita' della soluzione ma ne controlla quantomeno la consistenza e concordanza con quanto in input.txt.