Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2016-09-23 20:17:44.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:c3selector.in, c3selector.outSursăFinala ONIS 2016
AutorCosmin-Mihai Tutunaru, Login Iustin AncaAdăugată destocarulCosmin-Mihai Tutunaru stocarul
Timp execuţie pe test1.25 secLimită de memorie36864 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

C3selector

Probabil toata lumea a auzit despre pagini web si a vazut tag-uri HTML. La o firma de software din Cluj unde algoritmii intalnesc tehnologia, numita fictiv AlgoTech, una din intrebarile de la interviuri le cere candidatilor sa implementeze un selector de CSS.

O pagina HTML este considerata valida daca respecta urmatoarele conditii:

  • are un singur tag parinte; toate celelalte tag-uri sunt copii directi sau indirecti ai tag-ului parinte
  • toate tag-urile se deschid cu <tagname> si se inchid cu </tagname>
  • un tag poate avea oricati copii, putand avea forma: <x><y><y></y></y><z></z></x>
  • un tag poate avea un atribut suplimentar class, avand forma: <tagname class=“classx classy”>
  • este posibil ca unele din tag-urile terminale (care nu mai au copii) sa contina un text, putand avea forma: <x><y>text</y><z><y><x>another text</x></y></z></x>
  • acelasi tag poate aparea de mai multe ori, posibil cu clase diferite, dar intotdeauna se inchid corect
  • o clasa poate aparea de mai multe ori, posibil la tag-uri diferite

Un selector CSS este un pattern folosit pentru a identifica tag-uri intr-un HTML. El poate avea urmatoarele forme:

  • div = selecteaza toate tag-urile cu numele div
  • div p = selecteaza toate tag-urile p care se afla in interiorul unui tag div
  • .intro = selecteaza toate tag-urile care au clasa intro
  • .intro.layout = selecteaza toate tag-urile care au atat clasa intro cat si clasa layout ( atentie: este posibil sa apara mai mult de doua clase )
  • .layout .header = selecteaza toate tag-urile care au clasa header si se afla in interiorul unui tag care are clasa layout ( atentie: intre cele doua clase exista un spatiu )
  • p.big = selecteaza toate tag-urile p care au clasa big
  • p .big = selecteaza toate tag-urile cu clasa big care se afla in interiorul unui tag p ( atentie: intre tag si clasa exista un spatiu )

Pe baza formelor mentionate mai sus, un selector CSS poate poate lua toate combinatiile lor, putand avea orice forma. Exemplu: div.a p.q.b i.icon.q.red x y z.x.y.z.a .a.b.c d

Date de intrare

Fişierul de intrare c3selector.in ...

Date de ieşire

În fişierul de ieşire c3selector.out ...

Restricţii

  • ... ≤ ... ≤ ...

Exemplu

c3selector.inc3selector.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?