Encontrar os Duplicados
Um artista local tem criado arte digital há anos, acumulando milhares de ficheiros armazenados em múltiplos diretórios. Com o tempo, cópias duplicadas das mesmas peças de arte foram salvas com nomes diferentes, causando desordem e ocupando um precioso espaço de armazenamento. Para ajudar a gerir esta situação, a tua tarefa é desenvolver um programa que identifique estes ficheiros duplicados com base no seu conteúdo.
Dada uma única linha de entrada, o nome do diretório, o programa deve examinar todos os ficheiros dentro desse diretório (não estamos interessados em subdiretórios nesta tarefa) e imprimir uma lista de ficheiros duplicados agrupados. Os ficheiros são considerados duplicados se o seu conteúdo for idêntico. A saída deve consistir em múltiplas linhas, cada linha contendo os nomes dos ficheiros duplicados separados por espaços. Se um ficheiro não tiver duplicados, basta imprimir o nome do ficheiro numa única linha.
Entrada | Saída |
artist/drawings | artwork1.txt copyofartwork1.txt anothercopyofartwork1.txt
drawing1.png duplicatedrawing1.png
photo1.jpg photocopy.jpg
uniquefile.txt |
Nota: No exemplo acima,
drawing1.png
e duplicate_drawing1.png
são duplicados, assim como artwork1.txt
, copy_of_artwork1.txt
e another_copy_of_artwork1.txt
, e photo1.jpg
e photo_copy.jpg
.Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB