InfoAs Atlas
<- Go back Edit problem
Heads up!

The following is the problem preview, which might be in Romanian. This is how it should look like on the InfoAs CMS instances.

ID #123 · Colecția InfoAs · Operatori și expresii

Problema Zambirici

Medie (6 ★)

Memorie: 64 MB / 8 MB

Timp: 0.1 secunde

I/O: Necunoscută

Tatăl lui Jean nu se poate acomoda cu emoji-urile de pe tastatura telefonului său, așadar de fiecare dată când vrea să trimită o față zâmbitoare, recurge la un _zâmbirici_ (sau _smiley_), care este format astfel: 1. Primul caracter reprezintă ochii, din mulțimea `: ; B`; ochii trebuie să apară o singură dată și nu se pot repeta; 2. După ochi urmează nasul, format din `0` sau mai multe caractere `-`; 3. La final se află gura, formată din `1` sau mai multe caractere din mulțimea `) D P`; caracterele ce formează gura trebuie nu pot să difere. Spre exemplu, `:-)` și `;D` sunt zâmbirici, pe când `:--`, `:;-)` și `:----))D` nu sunt (primul nu are gură, al doilea are mai multe perechi de ochi, iar al treilea are guri diferite). ## Cerință Se dau `n` șiruri de caractere, formate din litere mari și mici ale alfabetului englez și alte simboluri. Să se verifice pentru fiecare dacă este un zâmbirici sau nu. ## Date de intrare Programul citește de la tastatură, de pe prima linie, numărul natural `n`, iar de pe următoarele `n` linii, câte un șir de caractere. ## Date de ieșire Programul afișează pe ecran, pe linia `i`, mesajul `DA`, dacă al `i`-lea șir de caractere este un zâmbirici, respectiv `NU` în caz contrar, cu `1 ≤ i ≤ n`. ## Restricții și precizări * `1 ≤ n ≤ 1000` * `1 ≤ lungimea șirurilor ≤ 100` * Pentru cei ce cunosc RegEx, un zâmbirici este echivalent cu expresia `(:|;|B)-*(∖)+|D+|P+)`