Ultimo aggiornamento: 2021-04-07
Siete stati assunti come consulenti dalla IATM S.p.A. (Importante Azienda di Telefonia Mobile) che è alle prese con il problema seguente. L'azienda ha un file contenente \(n\) numeri di telefono, \(200000 < n \leq \mathtt{MAXN}\). Tutti i numeri hanno sei cifre, la prima delle quali può essere 3
oppure 5
; il contenuto del file non è ordinato.
Nel file sono sicuramente presenti duplicati, perché contiene più elementi di quanti siano i numeri distinti strutturati come sopra. Esiste quindi almeno un numero di telefono che compare più di una volta. Il vostro compito è di implementare un algoritmo efficiente che calcoli il minimo numero di telefono che compare più di una volta nel file di input.
Il file di input è strutturato come segue:
tel_0
tel_1
...
tel_n-1
dove \(n\) indica il numero di numeri di telefono presenti nel file, e tel_0
, ... tel_n-1
sono gli \(n\) numeri di telefono, uno per riga.
Forse la parte più complicata di questo esercizio è la generazione dei file di input. Dato un intero \(n\) e un numero di telefono \(t\), come fareste per generare un input in cui il minimo numero di telefono ripetuto almeno due volte sia esattamente \(t\)?