Diferente pentru problema/dir intre reviziile #31 si #61

Diferente intre titluri:

dir
Dir

Diferente intre continut:

== include(page="template/taskheader" task_id="dir") ==
Costel trebuie sa realizeze, impreuna cu echipa sa, o aplicatie software pentru gestiunea fisierelor de pe hard-disc, 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:
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))
 
!http://infoarena.ro/problema/dir?action=download&file=dir.jpg!
 
 
* 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))@}
!problema/dir?dir.jpg!
h2. 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.
 
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.
h2. Date de intrare
Fisierul de intrare dir.in contine pe prima linie sirul de caractere ce codifica structura de fisiere de pe disc.
Fisierul de intrare $dir.in$ contine pe prima linie sirul de caractere ce codifica structura de fisiere de pe disc.
h2. 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.
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: {$F{~1~}\F{~2~}\...\F{~n~}\fisier$}, cate o cale pe o linie.
h2. Restrictii
* Sirul de caractere ce codifica structura de fisiere este nevid si contine maxim 1600 de caractere.
* 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).
* Pentru determinarea corecta a numarului de fisiere de date se acorda 30% din punctaj. Daca numarul de fisiere de date a fost determinat corect si caile sunt corect afisate in ordine lexicografica se acorda punctajul integral.
 
* Numarul de fisiere de date este cel mult $100$.
* Lungimea caii unui fisier este de cel mult $255$ caractere.
* Sirul {$x{~1~}x{~2~}...x{~n~}$} este mai mic lexicografic decat sirul {$y{~1~}y{~2~}...y{~m~}$}, daca exista $k$ astfel incat {$x{~1~}=y{~1~},x{~2~}=y{~2~},...,x{~k-1~}=y{~k-1~}$} si ({$x{~k~}<y{~k~} sau k=n+1$}).
h2. Exemplu
table(example). |_. dir.in |_. dir.out |
| FOLDER1 (FOLDER2 (),FOLDER3 (FOLDER4 (poveste,basm),basm))
| {@FOLDER1(FOLDER2(),FOLDER3(FOLDER4(poveste,basm),basm))@}
| 3
FOLDER1\FOLDER3\FOLDER4\basm
FOLDER1\FOLDER3\FOLDER4\poveste
FOLDER1\FOLDER3\basm
|
 
== include(page="template/taskfooter" task_id="dir") ==
 

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
2070