Fişierul intrare/ieşire: | fences.in, fences.out | Sursă | ACM-ICPC Faza Nationala 2017 |
Autor | Mihai Calancea | Adăugată de | |
Timp execuţie pe test | 0.1 sec | Limită de memorie | 131072 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Fences
Ai gasit un android care pare, la prima vedere, sa fie destinat constructiei de garduri. Excelent, tie nu prea iti plac oamenii, deci un gard nou n-ar strica, indiferent unde ar fi.
Androidul poate face miscari in directiile L = stanga, R = dreapta, U = sus si D = jos. La fiecare miscare executata, acesta se deplaseaza cu un metru in directia aleasa si adauga un segment de gard intre noua sa pozitie si vechea sa pozitie. Din pacate, androidul nu pare reprogramabil, tot ce poti face este sa reordonezi instructiunile deja existente in memoria sa. Nu poti adauga sau elimina comenzi noi. Te intrebi acum care este aria maxima a unei figuri pe care androidul o poate ingradi complet.
Spre exemplu, daca gasesti comenzile "LRUD" in memoria androidului, poti ingradi un patrat de arie 1 daca dai comenzilor ordinea "LURD". Daca nu modifici programul, acesta ingradeste o zona de arie 0. In general nu este necesar ca androidul sa revina in pozitia sa initiala dupa executarea comenzilor.
Date de intrare
Fişierul de intrare fences.in va contine pe prima sa linie numarul de teste T. Urmeaza T teste, fiecare continand un sir de caractere din multimea {'L', 'R', 'U', 'D'}.
Date de ieşire
În fişierul de ieşire fences.out se vor afla T numere, raspunsul la fiecare test in parte.
Restricţii
- 1 ≤ T ≤ 100
- 1 ≤ Lungimea sirului de comenzi ≤ 200.000
- Numarul total de comenzi in cadrul aceluiasi fisier este cel mult egal cu 2.000.000.
Exemplu
fences.in | fences.out |
---|---|
3 LLLR LLRUD LRLDDDUURLRLRUDRL | 0 1 15 |