QOJ.ac

QOJ

حد الوقت: 2 s حد الذاكرة: 1024 MB مجموع النقاط: 100 قابلة للهجوم ✓

#18676. 植樹

الإحصائيات

승연이는 나무를 심으려 한다. 이를 위해 무한 격자 위에서 몇 개의 칸을 골라 나무 씨앗을 뿌릴 것이다. 나무 씨앗에는 신비한 힘이 있어, 주변 나무 씨앗의 영향을 받아 사과나무 혹은 복숭아나무 중 하나로 자라난다.

씨앗이 자라 어떤 나무가 되는지는 다음 규칙을 따른다. 변을 맞댄 두 칸에 모두 씨앗이 있다면 그 두 씨앗을 서로 인접하다고 한다. 인접한 씨앗의 수가 짝수인 씨앗은 사과나무가 된다. 반면 인접한 씨앗의 수가 홀수인 씨앗은 복숭아나무가 된다.

승연이가 위와 같이 $5$개의 씨앗을 심었다고 하자. 서로 인접한 씨앗은 파란색 화살표와 같이 나타난다. 가운데 씨앗은 $3$개의 씨앗과 인접해 있으므로 복숭아나무가 된다.

결과적으로 위와 같이 $3$개의 사과나무와 $2$개의 복숭아나무가 열리게 된다.

씨앗을 심을 때는 씨앗들이 격자에서 모두 연결되어 있어야 한다. 즉 임의의 두 씨앗에 대해, 서로 인접한 씨앗만 거쳐서 두 씨앗 사이를 이동할 수 있어야 한다. 예를 들어 아래와 같은 배치는 불가능하다.

승현이는 사과나무 $A$개, 복숭아나무 $B$개를 심으려 한다. 이것이 가능한지 여부와, 가능하다면 나무 배치를 출력하라.

輸入格式

第一行包含兩個非負整數 $A$ 和 $B$,以空格分隔。($A \geq 0$;$B \geq 0$;$1 \le A+B \le 200$)

輸出格式

第一行,若可行則輸出 YES,否則輸出 NO

若可行,第二行輸出兩個整數 $R$ 和 $C$,代表行數和列數,以空格分隔。($1 \le R,C \le 200$)

接下來 $R$ 行,每行包含 $C$ 個字元,不含空格。每個字元為 O.,其中 O 表示有種子,. 表示無種子。

範例

輸入格式 1

3 2

輸出格式 1

YES
3 3
.OO
OOO
...

輸入格式 2

1 0

輸出格式 2

YES
1 1
O

輸入格式 3

7 0

輸出格式 3

YES
3 3
.OO
OOO
OO.

輸入格式 4

8 0

輸出格式 4

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

輸入格式 5

9 0

輸出格式 5

NO

輸入格式 6

0 7

輸出格式 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.