QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 1024 MB 満点: 100 ハック可能 ✓

#18676. Plantar árboles

統計

승연이 quiere plantar árboles. Para ello, elegirá algunas celdas en una cuadrícula infinita y plantará semillas. Las semillas tienen un poder misterioso: bajo la influencia de las semillas vecinas, crecen como manzanos o melocotoneros.

El árbol que resulta de una semilla sigue la siguiente regla. Si dos celdas que comparten un lado tienen semillas, se dice que esas dos semillas son adyacentes. Una semilla con un número par de semillas adyacentes se convierte en manzano. Por el contrario, una semilla con un número impar de semillas adyacentes se convierte en melocotonero.

Supongamos que 승연이 plantó $5$ semillas como se muestra arriba. Las semillas adyacentes entre sí se muestran con flechas azules. La semilla del centro tiene $3$ semillas adyacentes, por lo que se convierte en melocotonero.

Como resultado, se obtienen $3$ manzanos y $2$ melocotoneros, como se muestra arriba.

Al plantar las semillas, todas deben estar conectadas en la cuadrícula. Es decir, para cualquier par de semillas, debe ser posible moverse entre ellas pasando solo por semillas adyacentes. Por ejemplo, la siguiente disposición no es posible.

승현이 quiere plantar $A$ manzanos y $B$ melocotoneros. Determina si es posible y, si lo es, imprime una disposición de los árboles.

Entrada

La primera línea contiene dos enteros no negativos $A$ y $B$ separados por un espacio. ($A \geq 0$; $B \geq 0$; $1 \le A+B \le 200$)

Salida

La primera línea debe contener YES si es posible, o NO en caso contrario.

Si es posible, la segunda línea debe contener el número de filas $R$ y columnas $C$ separados por un espacio. ($1 \le R,C \le 200$)

Las siguientes $R$ líneas deben contener, cada una, $C$ caracteres sin espacios. Cada carácter debe ser O o ., donde O indica una celda con semilla y . una celda sin semilla.

Ejemplos

Entrada 1

3 2

Salida 1

YES
3 3
.OO
OOO
...

Entrada 2

1 0

Salida 2

YES
1 1
O

Entrada 3

7 0

Salida 3

YES
3 3
.OO
OOO
OO.

Entrada 4

8 0

Salida 4

YES
4 4
....
.OOO
.O.O
.OOO

Entrada 5

9 0

Salida 5

NO

Entrada 6

0 7

Salida 6

NO

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.