PyTown ֆայլային համակարգ

PyTown-ի աշխարհում ֆայլերը համակարգչում դասավորված չեն այնպես, ինչպես սովորաբար բոլորիս մոտ։ Դրանք ձևակերպված են ներդիր բառարանում, որտեղ բանալիները ներկայացնում են «թղթապանակների անունները» կամ «ֆայլի անունները», իսկ արժեքները կա՛մ «ենթապանակներ» ներկայացնող բառարաններ են, կա՛մ «ֆայլերի ընդլայնումներ» (extension) ներկայացնող տողեր։ Ֆայլի ընդլայնումը պարունակում է ֆայլի տեսակի մասին ինֆորմացիա (.txt տեքստային ֆայլերի համար, .exe աշխատացվող ֆայլերի համար և այլն): Օրինակ, համակարգի պարզեցված տարբերակը կարող է այսպիսի տեսք ունենալ.
{
    'home': {
        'myDocs': {
            'file1': 'txt',
            'file2': 'doc',
            'myPics': {
                'pic1': 'jpg',
                'pic2': 'jpg'
            }
        }
    },
    'etc': {
        'configs': {
            'config1': 'cfg',
            'config2': 'cfg'
        }
    }
}
Ձեզ հանձնարարված է գրել ռեկուրսիվ ծրագիր, որը կարող է անցնել այս ներդիր բառարանով և գտնել բոլոր այն ֆայլերը, որոնք ավարտվում են տրված ընդլայնմամբ (extension):
Մուտքի առաջին տողը պարունակում է մեկ տող՝ այն ֆայլի ընդլայնումը, որը փնտրում ենք: Հաջորդ տողը պարունակում է ներդիր բառարան, որը ներկայացնում է PyTown-ի գրացուցակի կառուցվածքը: Բառարանը տրվում է որպես տող, և դուք պետք է այն վերածեք բառարանի՝ հետագա մշակման համար (օգտագործեք json մոդուլը)։
Ծրագիրը պետք է տպի բոլոր այն ֆայլերի ցանկը, որոնք ունեն տվյալ ընդլայնումը: Ֆայլերը պետք է ներկայացված լինեն իրենց ամբողջական ուղիով (path), որտեղ բաղադրիչներն առանձնացված են շեղագծով (/), ինչը նման է UNIX-ի հիմքով աշխատող ֆայլային համակարգերին: Ուղին (path-ը) պետք է սկսվի առաջին մակարդակի բանալիից և ավարտվի ֆայլի անվանումով, որտեղ յուրաքանչյուր բաղադրիչը բաժանված է /-ով: Յուրաքանչյուր ֆայլը պետք է տպել նոր տողում:
Մուտք
Ելք
cfg { "home": { "myDocs": { "file1": "txt", "file2": "doc", "myPics": { "pic1": "jpg", "pic2": "jpg" } } }, "etc": { "configs": { "config1": "cfg", "config2": "cfg" } } }
etc/configs/config1 etc/configs/config2
Նշում․ ելքում ֆայլի ուղիները պետք է լինեն նույն հերթականությամբ, ինչ մուտքում: Բառարանների ներդրումը կարող է լինել կամայական խորության։
 

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