QOJ.ac

QOJ

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

#18672. 石膏模型製作

統計

현우는 틀에 석고를 붓고 굳혀서 다양한 모양을 만들어 보는 취미가 있다. 현우가 이번에 준비한 틀은 세로 길이가 $R$, 가로 길이가 $C$, 높이가 $1$인 직육면체 모양이다.

만들어진 모양이 단순하면 석고 모형을 만드는 재미가 떨어진다. 그래서 현우는 지름과 높이가 $1$인 원기둥을 $R \times C$개 가져왔다. 현우는 원기둥을 모두 틀 안에 배치한 다음 빈 공간에 석고를 붓기로 했다.

원기둥을 틀에 배치할 때에는, 틀을 $R \times C$개의 단위 정육면체로 나눈 뒤 각 단위 정육면체 안에 꼭 맞게 넣어야 한다. 원기둥을 배치할 수 있는 방향은 세 가지가 있는데, 회전축이 가로를 향하거나, 세로를 향하거나, 바닥에 수직이도록 놓을 수 있다.

현우가 원기둥을 모두 배치하고 나면 틀에 석고를 부어 굳힌 뒤 모든 원기둥을 제거할 것이다. 그러면 여러 개의 분리된 석고 조각이 만들어진다. 예를 들어, 세로 길이가 $1$이고 가로 길이가 $2$인 직육면체 틀에 두 원기둥을 회전축이 바닥에 수직이도록 배치한다면 총 $6$개의 석고 조각이 만들어진다.

한편, 위 예시에서 원기둥 하나의 회전축이 세로를 향하도록 배치를 바꾼다면 총 $5$개의 석고 조각이 만들어진다.

현우가 틀에 원기둥을 배치하는 방법이 주어졌을 때, 총 몇 개의 석고 조각이 만들어질지 구해 보자.

輸入格式

第一行給定兩個整數 $R$ 和 $C$,分別表示模具的垂直長度和水平長度,以空格分隔。($1 \le R, C \le 200$)

接下來 $R$ 行給出賢宇在模具中放置圓柱體的方式。每行有一個長度為 $C$ 的字串,字串中各個字元的含義如下:

  • H:旋轉軸朝向水平方向的圓柱體
  • I:旋轉軸朝向垂直方向的圓柱體
  • O:旋轉軸垂直於底面的圓柱體

輸出格式

第一行輸出將石膏凝固並移除所有圓柱體後所產生的石膏碎片數量。

範例

輸入格式 1

1 2
OO

輸出格式 1

6

輸入格式 2

1 2
OI

輸出格式 2

5

輸入格式 3

1 2
OH

輸出格式 3

4

輸入格式 4

2 2
IH
HI

輸出格式 4

2

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.