bloxorz

Time limit: 3s Memory limit: 256MB Input: Output:

E posibil să cunoașteți jocul Bloxorz. Dacă nu cunoașteți, vă rugăm să vizionați stagiul 1 din acest videoclip pentru a înțelege mecanicile acestui joc. În problema aceasta nu există butoane, posibilitatea de a despărți jucătorul în două cuburi, sau alte lucruri care nu apar în stagiul 1 al videoclipului.

Jucătorul este un paralelipiped dreptunghic de dimensiuni 2×1×12 \times 1 \times 1. La început, înălțimea acestuia este 22 iar lungimea și lățimea sunt 11. Pentru a se mișca pe hartă, jucătorul se va roti în cele 4 direcții (Nord, Sud, Est, Vest). La o rotație, înălțimea, lungimea și lățimea jucătorului se vor schimba între ele. Spre exemplu, din stadiul inițial al jucătorului se poate ajunge la înălțimea 11, lungimea 22 și lățimea 11.

Cerință

Aveți la dispoziție o hartă bidimensională care conține, în unele poziții, platforme. Jucătorul are voie să meargă doar pe platforme. Verificați dacă este posibil ca jucătorul să ajungă de pe o platformă inițială pe o platformă finală, având la sfârșit înălțimea 22 și lungimea și lățimea 11. În cazul în care este posibil, afișați un traseu corect pe care jucătorul îl poate folosi.

Date de intrare

Pe prima linie se află numerele NN și MM, reprezentând dimensiunile hărții (numărul de linii respectiv numărul de coloane).

Pe următoarele NN linii se află MM caractere, fiecare reprezentând o bucată din hartă. Caracterele pot fi:

  • _ — Acest caracter reprezintă o platformă.
  • # — Acest caracter reprezintă că acolo nu există nimic. Înseamnă că jucătorul nu are voie să meargă pe acolo.
  • A — Acest caracter reprezintă platforma inițială.
  • B — Acest caracter reprezintă platforma finală.

Date de ieșire

În cazul în care nu există niciun traseu, afișați NU.
În cazul în care există un traseu, afișați pe prima linie DA, iar pe a doua linie o înșiruire de caractere din mulțimea {\{N,, S,, E,, V}\} reprezentând direcțiile pe care jucătorul le va parcurge la fiecare pas (N — Nord, S — Sud, E — Est, V — Vest).

Restricții și precizări

  • 1N,M2 0001 \leq N,M \leq 2\ 000
  • Jucătorul trebuie să stea integral pe platforme. Nu este permis ca o jumătate din jucător să fie pe o platformă iar cealaltă jumătate să nu fie pe o platformă.
  • Problema nu cere neapărat un traseu cu număr minim de pași.
  • În afara hărții nu există nicio platformă.
  • Veți primi 40%40\% din punctajul unui subtask pentru afișarea corectă doar a primului mesaj (DA/NU).
# Punctaj Restricții
0 0 Exemplul
1 10 Dacă există un traseu, acesta este format doar dintr-o singură direcție
2 70 N,M500N,M \leq 500
3 20 Fără restricții suplimentare

Exemplu

stdin

6 10
___#######
_A____####
_________#
#_________
#####__B__
######___#

stdout

DA
EESEEES

Explicație

Exemplul este același ca cel din videoclip, precum și mutările făcute.

Soluțiile ESSEESE sau EESENVSEEESSNVNSVNESEVSSVENVNEESVNESVNESV sunt de asemenea corecte.

Log in or sign up to be able to send submissions!