Prihlásenie Registrácia  

Q - Kvadrant

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

V počítačovej grafike sa často stretávame s potrebou kompresie dát. Obrázok napríklad môžeme uložiť v kvadrantovej reprezentácii.
Tá je teraz daná formou textového reťazca R s odvodením:

  • R -> Q
  • Q -> (QQQQ) | F | V

Obrázok je buď plne zafarbený - "F", prázdny - "V" alebo čiastočne zafarbený.
V tom prípade sa rozdelí na 4 kvadranty (ozátvorkované, aby bolo jasné, že patria spolu) (v poradí ľavý horný, pravý horný, ľavý dolný, pravý dolný) a pre každý kvadrant sa potom aplikujú tie isté pravidlá.

Nástroj na pohranie sa s takouto reprezentáciou je tu

Platnými reťazcami sú napríklad:

Neplatnými reťazcami sú napríklad:

  • FF - na nultej úrovni je dovolený len jeden prvok alebo zátvorky
  • (FFF) , ((FFVF)) - málo kvadrantov v zátvorke
  • (FFFFF) - veľa kvadrantov v zátvorke
  • (FF)FVVF(F), (FFVF)) - zle ozátvorkovaný výraz
  • (FQVF) neplatný znak, povolené sú len F,V,( a ) (ani medzera)

Úloha

Pre daný kvadrantový popis obrázka zistite, aká jeho časť je zafarbená.

Vstup

V prvom riadku vstupu sa nachádza počet testovacích sád S

Nasleduje S riadkov, každý s (platným) kvadrantovým reťazcom R popisujúcim obrázok.

1 ≤ S ≤ 50
1 ≤ |R| ≤ 10 240

Výstup

Výstupom programu je pre každú sadu číslo zlomok v základnom tvare vyjadrujúci podiel zafarbenej plochy obrázka.
Môžete predpokladať, že čitateľ aj menovateľ tohto zlomku sa zmestia do premennej typu int64 (java:long | c:long long int)

Príklad

Vstup:

4
F
((VVVF)VVV)
(VVVV)
(FVFV)

Výstup:

1/1
1/16
0/1
1/2