Sistema de Ficheiros PyTown

No mundo de PyTown, os ficheiros num computador estão organizados de forma diferente da nossa. Eles são estruturados num dicionário aninhado onde as chaves representam os 'nomes das pastas' ou 'nomes dos ficheiros', e os valores são ou dicionários que representam 'subpastas' ou strings que representam 'extensões de ficheiros'. Por exemplo, uma versão simplificada do sistema pode ser assim:
{
    'home': {
        'myDocs': {
            'file1': 'txt',
            'file2': 'doc',
            'myPics': {
                'pic1': 'jpg',
                'pic2': 'jpg'
            }
        }
    },
    'etc': {
        'configs': {
            'config1': 'cfg',
            'config2': 'cfg'
        }
    }
}
A tua tarefa é escrever um programa recursivo que consiga navegar por este dicionário aninhado e encontrar todos os ficheiros que terminam com uma determinada extensão.
A primeira linha da entrada contém uma única string que representa a extensão que estamos à procura. A linha seguinte contém o dicionário aninhado que representa a estrutura de diretórios de PyTown. O dicionário é fornecido como uma string, e precisas de convertê-lo para um dicionário para processamento posterior (usa o módulo json para o fazer).
O programa deve produzir uma lista de todos os ficheiros que têm a extensão dada. Os ficheiros devem ser representados pelo seu caminho completo separado por uma barra (/), semelhante aos sistemas de ficheiros baseados em UNIX. O caminho deve começar pela chave de primeiro nível até ao nome do ficheiro, cada um separado por uma /. Imprime cada ficheiro numa nova linha.
Entrada
Resultado
cfg { "home": { "myDocs": { "file1": "txt", "file2": "doc", "myPics": { "pic1": "jpg", "pic2": "jpg" } } }, "etc": { "configs": { "config1": "cfg", "config2": "cfg" } } }
etc/configs/config1 etc/configs/config2
Nota: Os caminhos dos ficheiros devem estar na ordem da sua aparição na entrada. A aninhagem dos dicionários pode ter profundidade arbitrária.
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue