QOJ.ac

QOJ

시간 제한: 2 s 메모리 제한: 1024 MB 총점: 100 해킹 가능 ✓

#18676. Trồng cây

통계

Seungyeon muốn trồng cây. Để làm điều đó, cô ấy sẽ chọn một số ô trên lưới vô hạn và gieo hạt giống cây. Hạt giống có sức mạnh bí ẩn, chúng sẽ phát triển thành cây táo hoặc cây đào tùy thuộc vào ảnh hưởng của các hạt giống xung quanh.

Hạt giống phát triển thành cây nào theo quy tắc sau: Nếu hai ô có chung cạnh đều có hạt giống, thì hai hạt giống đó được gọi là kề nhau. Một hạt giống có số lượng hạt giống kề là chẵn sẽ trở thành cây táo. Ngược lại, một hạt giống có số lượng hạt giống kề là lẻ sẽ trở thành cây đào.

Giả sử Seungyeon gieo $5$ hạt giống như trên. Các hạt giống kề nhau được biểu diễn bằng mũi tên màu xanh. Hạt giống ở trung tâm kề với $3$ hạt giống khác nên nó trở thành cây đào.

Kết quả, chúng ta có $3$ cây táo và $2$ cây đào như trên.

Khi gieo hạt, các hạt giống phải được kết nối với nhau trên lưới. Nghĩa là, đối với bất kỳ hai hạt giống nào, ta có thể di chuyển giữa chúng chỉ qua các hạt giống kề nhau. Ví dụ, cách bố trí dưới đây là không thể.

Seungyeon muốn trồng $A$ cây táo và $B$ cây đào. Hãy xác định xem điều này có khả thi hay không, và nếu có, hãy in ra cách bố trí cây.

Dữ liệu vào

Dòng đầu tiên chứa hai số nguyên không âm $A$, $B$ cách nhau bởi dấu cách. ($A \geq 0$; $B \geq 0$; $1 \le A+B \le 200$)

Dữ liệu ra

Dòng đầu tiên, nếu có thể bố trí thì in ra YES, nếu không thì in ra NO.

Nếu có thể bố trí, dòng thứ hai in ra số hàng và số cột $R$ và $C$ cách nhau bởi dấu cách. ($1 \le R, C \le 200$)

Từ dòng thứ ba trở đi, in ra $R$ dòng, mỗi dòng gồm $C$ ký tự liên tiếp (không có dấu cách). Mỗi ký tự là O hoặc ., trong đó O biểu thị ô có hạt giống, . biểu thị ô trống.

Ví dụ

Dữ liệu vào 1

3 2

Dữ liệu ra 1

YES
3 3
.OO
OOO
...

Dữ liệu vào 2

1 0

Dữ liệu ra 2

YES
1 1
O

Dữ liệu vào 3

7 0

Dữ liệu ra 3

YES
3 3
.OO
OOO
OO.

Dữ liệu vào 4

8 0

Dữ liệu ra 4

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

Dữ liệu vào 5

9 0

Dữ liệu ra 5

NO

Dữ liệu vào 6

0 7

Dữ liệu ra 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.