Fişierul intrare/ieşire:dir.in, dir.outSursăOJI 2007, Clasa a 10-a
AutorAlin BurtaAdăugată degabitzish1Gabriel Bitis gabitzish1
Timp execuţie pe test0.05 secLimită de memorie4736 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Dir

Costel trebuie sa realizeze, impreuna cu echipa sa, o aplicatie software pentru gestiunea fisierelor de pe hard-disk, sarcina sa fiind aceea de a scrie un modul pentru determinarea cailor tuturor fisierelor de date aflate in structura arborescenta a folderelor de pe disc. Membrii echipei au stabilit o codificare proprie pentru memorarea structurii fisierelor de pe disc, utilizand un sir de caractere. Specificatiile tehnice sunt urmatoarele:

  • folderul este un fisier de tip special, care poate contine fisiere si/sau foldere (acestea fiind considerate subfoldere ale folderului respectiv);
  • numele folderelor incep cu o litera, au maxim 30 de caractere si sunt scrise cu majuscule;
  • numele fisierelor de date incep cu o litera, au maxim 30 de caractere si sunt scrise cu minuscule;
  • caracterele utilizate pentru numele fisierelor si folderelor sunt literele alfabetului englez si cifrele arabe;
  • reprezentarea structurii fisierelor sub forma unui sir de caractere se realizeaza dupa urmatoarea regula: NUME_FOLDER(lista_de_foldere_si_fisiere), unde lista_de_foldere_si_fisiere, posibil vida, contine fisierele si/sau subfolderele folderului NUME_FOLDER, separate prin virgula. Subfolderele se reprezinta respectand aceeasi regula. De exemplu, structura de fisiere si foldere din figura de mai jos se reprezinta prin sirul de caractere:
    FOLDER1(FOLDER2(),FOLDER3(FOLDER4(poveste,basm),basm))

Cerinta

Scrieti un program care, cunoscand sirul de caractere ce codifica o structura de fisiere de pe disc, determina calea pentru fiecare fisier de date din structura. Prin cale a unui fisier se intelege o succesiune de foldere, fiecare folder fiind urmat de caracterul \(backslash), incepand de la folderul aflat pe cel mai inalt nivel al structurii (primul specificat in sirul ce codifica structura de fisiere), pana la subfolderul in care se afla fisierul de date respectiv si terminata cu numele fisierului. Caile determinate vor fi afisate in ordine lexicografica.

Date de intrare

Fisierul de intrare dir.in contine pe prima linie sirul de caractere ce codifica structura de fisiere de pe disc.

Date de iesire

Fisierul de iesire dir.out va contine pe prima linie un numar natural N reprezentand numarul de fisiere de date gasite. Pe urmatoarele N linii se vor scrie, in ordine lexicografica, caile ce permit identificarea fisierelor gasite, in formatul: F1\F2\...\Fn\fisier, cate o cale pe o linie.

Restrictii

  • Sirul de caractere ce codifica structura de fisiere este nevid si contine maxim 1600 de caractere.
  • Structura de foldere contine cel putin un folder si cel putin un fisier.
  • Numarul de fisiere de date este cel mult 100.
  • Lungimea caii unui fisier este de cel mult 255 caractere.
  • Sirul x1x2...xn este mai mic lexicografic decat sirul y1y2...ym, daca exista k astfel incat x1=y1,x2=y2,...,xk-1=yk-1 si (xk<yk sau k=n+1).

Exemplu

dir.indir.out
FOLDER1(FOLDER2(),FOLDER3(FOLDER4(poveste,basm),basm))
3
FOLDER1\FOLDER3\FOLDER4\basm
FOLDER1\FOLDER3\FOLDER4\poveste
FOLDER1\FOLDER3\basm
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content