QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 256 MB مجموع النقاط: 100 تفاعلية

#18099. Jeu avec des pièces

الإحصائيات

Ce problème est interactif.

Taja peut facilement gagner à ce jeu, mais aucun de ses amis n'y arrive. Elle vous propose maintenant d'y jouer.

L'équipement de jeu consiste en un terrain de $n \times n$ ($5 \le n \le 40$), une pièce, deux pièces de monnaie (COIN1, COIN2), deux dés avec des directions cardinales (DICE1, DICE2), et un grand nombre de blocs de la taille d'une cellule.

Nom Nombre de faces Faces
COIN1. Pièce de mouvement 2 SLIDE, RAM
COIN2. Pièce de modification 2 PLACE, REMOVE
DICE1. Premier dé avec directions 4 N (Nord), S (Sud), W (Ouest), E (Est)
DICE2. Second dé avec directions 8 N (Nord), S (Sud), W (Ouest), E (Est), NW (Nord-ouest), NE (Nord-est), SW (Sud-ouest), SE (Sud-est)

Avant le début de la partie, la pièce et certains blocs sont placés sur le terrain. Ensuite, le joueur effectue des mouvements de ce type. Au début, le joueur choisit une pièce de monnaie et la lance pour déterminer une action. Ensuite, il choisit l'un des dés et le lance pour déterminer une direction dir. Après cela, l'une des quatre actions suivantes se produit :

Chaîne de la pièce Action
SLIDE Déplacer la pièce le long des cellules vides dans la direction dir, jusqu'à ce que la pièce entre en collision avec un bloc ou le bord du labyrinthe
RAM Déplacer la pièce le long des cellules vides dans la direction dir, jusqu'à ce qu'elle entre en collision avec un premier bloc. Ensuite, déplacer la pièce et le bloc dans la même direction, jusqu'à ce que le bloc en mouvement entre en collision avec un autre bloc ou le bord du terrain
PLACE Si la cellule adjacente dans la direction dir à côté de la pièce est vide et se trouve dans le terrain, placer un bloc sur cette cellule
REMOVE Si la cellule adjacente dans la direction dir à côté de la pièce contient un bloc et se trouve dans le terrain, retirer le bloc de cette cellule

Le but est de placer la pièce sur la cellule d'arrivée.

Une requête pour ce problème correspond à un lancer de pièce et un lancer de dé.

Interaction

Au début, l'interacteur donne la taille du labyrinthe, le labyrinthe et les coordonnées de la cellule d'arrivée. Ensuite, les actions en 4 étapes suivantes se produisent :

  1. Le programme du jury affiche les coordonnées de la pièce ou informe que la pièce a atteint la cellule d'arrivée.
  2. Votre programme affiche le nom de la pièce de monnaie.
  3. Le programme du jury affiche le nom de l'action sur la pièce de monnaie.
  4. Votre programme affiche le nom du dé.
  5. Le programme du jury affiche le nom de la direction sur le dé et des informations supplémentaires pour l'action RAM.

Sortie

La sortie standard doit consister en une paire de lignes : le nom de la pièce de monnaie et le nom du dé. Le nom de la pièce est la chaîne "COIN1" ou "COIN2". Le nom du dé est la chaîne "DICE1" ou "DICE2".

N'oubliez pas de vider la sortie standard après avoir imprimé chaque ligne.

Entrée

La première ligne de l'entrée standard contient un entier $n$ — la taille du labyrinthe. Les $n$ lignes suivantes contiennent $n$ caractères . (ASCII 46) ou # (ASCII 35), désignant respectivement une cellule vide et une cellule avec un bloc.

La ligne suivante contient deux entiers $r_f$ et $c_f$ — le numéro de ligne et le numéro de colonne de la cellule d'arrivée. Le coin supérieur gauche est $(1, 1)$, le coin inférieur droit est $(n, n)$. La cellule d'arrivée et la cellule initiale sont vides.

Les groupes suivants décrivent chaque mouvement :

  • La première ligne d'un groupe contient deux entiers $r, c$ — le numéro de ligne et le numéro de colonne de la pièce, ou $(-1, -1)$ si la pièce atteint la cellule d'arrivée.
  • La ligne suivante contient le nom de l'action indiquée sur la pièce de monnaie.
  • La ligne suivante contient le nom de la direction indiquée sur le dé.
  • Si l'action actuelle est RAM, les deux chaînes suivantes contiennent deux entiers $r_1, c_1$ et $r_2, c_2$, indiquant que la pièce entre en collision avec un bloc aux coordonnées $(r_1, c_1)$ et déplace ce bloc vers la cellule $(r_2, c_2)$.

La direction nord correspond à un numéro de ligne décroissant. Le sud à un numéro de ligne croissant. La direction ouest à un numéro de colonne décroissant. La direction est à un numéro de colonne croissant.

Chaque face de n'importe quelle pièce ou dé est montrée avec la même probabilité.

Exemples

Entrée 1

5
#....
.....
.....
.....
..#..
4 3
1 5
PLACE
W
1 5
RAM
S
6 5
6 5
5 5
RAM
W
5 3
5 1
5 2
PLACE
NE
5 2
RAM
NE
4 3
2 5
3 4
REMOVE
NE
3 4
PLACE
S
3 4
SLIDE
W
3 1
RAM
S
5 1
5 1
4 1
SLIDE
E
-1 -1

Sortie 1

COIN2
DICE1
COIN1
DICE1
COIN1
DICE1
COIN2
DICE2
COIN1
DICE2
COIN2
DICE2
COIN2
DICE1
COIN1
DICE1
COIN1
DICE1
COIN1
DICE1

L'état initial du labyrinthe pour l'exemple

La représentation du chemin est montrée ci-dessous :

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.