QOJ.ac

QOJ

Limite de temps : 5 s Limite de mémoire : 512 MB Points totaux : 100

#861. Drone de patrouille

Statistiques

Vous essayez de voler un diadème en diamant très précieux dans un musée. Ce qui rend la chose tentante est que (en raison de coupes budgétaires) tous les gardes ont été remplacés par un unique drone automatique qui patrouille dans le hall principal du musée. Ce qui la rend moins tentante, cependant, est que ce drone est équipé d'un armement très moderne et que vous risquez d'être désintégré si vous attirez son attention.

Heureusement, vous avez fait vos devoirs et avez une assez bonne compréhension du fonctionnement du drone. Imaginez que le hall soit un plan euclidien, divisé en cellules carrées unitaires. La cellule centrale, $(0, 0)$, contient le diadème. Le drone possède une unité de traitement simple qui stocke deux choses : sa position actuelle $(x, y)$ et la séquence d'instructions, notée par les lettres 'N', 'E', 'S', 'W'. Chaque minute, le drone se déplace vers un point adjacent selon la première lettre de la séquence (Nord, Sud, Ouest ou Est), modifie la position stockée en conséquence, puis déplace cette première lettre à la fin de la séquence pour accéder à la suivante la minute suivante. Si la séquence d'instructions est vide, le drone ne fait tout simplement rien. Il est garanti que ces instructions décrivent une boucle fermée et que le drone n'entre jamais dans la cellule $(0, 0)$.

Actuellement, le drone est à la position $(x_0, y_0)$ et possède une chaîne $T$ d'instructions. Vous pouvez modifier la mémoire du drone par un piratage astucieux – votre objectif est d'atteindre une situation dans laquelle le drone est à la même position $(x_0, y_0)$, mais avec une chaîne différente $T'$. Votre stratégie de piratage est malheureusement quelque peu limitée – chaque minute, vous ne pouvez accéder qu'aux deux premières lettres de la chaîne et effectuer un nombre quelconque des opérations suivantes :

  • supprimer les deux premières lettres de la chaîne, mais seulement si elles sont « NS », « SN », « EW » ou « WE » ;
  • ajouter les deux lettres « NS », « SN », « EW » ou « WE » au début de la chaîne ;
  • échanger les deux premières lettres de la chaîne (n'importe quelle combinaison de lettres peut être échangée).

De plus, un système de détection de collision est implémenté sur le drone, qui détecte si l'ensemble actuel d'instructions pourrait éventuellement amener le drone en $(0, 0)$. Une alarme est déclenchée dans ce cas – c'est la situation que vous voulez éviter à tout prix.

Trouvez une séquence d'opérations de piratage qui amènera le drone en $(x_0, y_0)$ avec la séquence souhaitée $T'$ dans sa mémoire.

Entrée

La première ligne de l'entrée consiste en un nombre unique $z$ ($1 \le z \le 100$), indiquant le nombre de cas de test. Les descriptions des cas de test suivent.

La première ligne de chaque cas de test consiste en deux entiers $x_0, y_0$ ($-1000 \le x_0, y_0 \le 1000$), indiquant la position initiale du drone. Au moins l'un des nombres $x_0, y_0$ n'est pas nul.

La deuxième ligne contient deux nombres $n, m$ ($2 \le n, m \le 2000$) – la longueur de la chaîne actuelle ($T$) et cible ($T'$) respectivement.

Les deux lignes suivantes contiennent chacune une chaîne, de longueur $n$ et $m$ respectivement, désignant $T$ et $T'$, composées uniquement des lettres N, S, E et W.

Il est garanti que les séquences actuelle et cible sont différentes. De plus, les deux décrivent des boucles fermées et aucune de ces boucles ne traverse $(0, 0)$ à aucun moment du trajet.

Le nombre total de lettres dans tous les cas de test ne dépasse pas 20 000.

Sortie

Pour chaque cas de test, s'il est impossible de satisfaire les exigences de la tâche, affichez « NO » sur une seule ligne. Sinon, affichez « YES », puis une description de la solution sur la ligne suivante. La solution doit consister uniquement en des symboles $\{N, S, E, W, R, -, C\}$, où chaque caractère indique une opération de piratage unique :

  • Le symbole 'N' signifie ajouter « NS » au début de la chaîne.
  • De même, les symboles 'S', 'E' et 'W' signifient ajouter « SN », « EW » et « WE » au début.
  • Le symbole 'R' signifie supprimer les deux premières lettres de la chaîne – cela n'est autorisé que si ces lettres sont « NS », « SN », « EW » ou « WE ».
  • Le symbole 'C' signifie échanger les deux premières lettres.
  • Le symbole '-' signifie que vous attendez le reste de la minute (jusqu'à ce que le drone passe à l'instruction suivante).

Remarque

Notez que plusieurs piratages peuvent être effectués en une seule minute. Vous n'avez pas besoin de minimiser la longueur de la solution, mais la description des actions ne doit pas comporter plus de $2 \cdot 10^7$ caractères. À la fin de la dernière minute de votre sortie, la chaîne et la position du drone doivent correspondre à celles souhaitées. Supprimer ou échanger des éléments d'une chaîne avec au plus une lettre n'est pas autorisé. À aucun moment, la boucle décrite par la séquence du drone ne peut passer par $(0, 0)$.

Exemples

Entrée 1

2
1 0
10 10
NNWWSSSEEN
NWWSSSEENN
-1 0
8 8
NEESSWWN
SEENNWWS

Sortie 1

YES
-C-C-R--S-C-C---
NO

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#186EditorialOpen题解jiangly2025-12-12 23:58:48View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.