QOJ.ac

QOJ

시간 제한: 10 s 메모리 제한: 256 MB 총점: 100

#23804. Phô mai

통계

Đề bài

Năm nay, các nhà máy phô mai ở thị trấn JOI lại bắt đầu sản xuất phô mai, và một chú chuột đã ló đầu ra khỏi tổ. Thị trấn JOI được quy hoạch thành các ô theo hướng đông, tây, nam, bắc, và mỗi ô là tổ chuột, nhà máy phô mai, chướng ngại vật hoặc bãi đất trống. Chú chuột xuất phát từ tổ, ghé thăm tất cả các nhà máy phô mai và ăn $1$ miếng phô mai ở mỗi nhà máy.

Trong thị trấn này có $N$ nhà máy phô mai, và mỗi nhà máy chỉ sản xuất $1$ loại phô mai duy nhất. Độ cứng của phô mai khác nhau tùy theo từng nhà máy, và có đúng $1$ nhà máy sản xuất phô mai cho mỗi độ cứng từ $1$ đến $N$.

Thể lực ban đầu của chú chuột là $1$, và mỗi khi ăn $1$ miếng phô mai, thể lực của chú tăng thêm $1$. Tuy nhiên, chú chuột không thể ăn phô mai cứng hơn thể lực hiện tại của mình.

Chú chuột có thể di chuyển sang ô liền kề theo hướng đông, tây, nam hoặc bắc trong $1$ phút, nhưng không thể đi vào ô có chướng ngại vật. Chú cũng có thể đi ngang qua một nhà máy phô mai mà không ăn phô mai. Hãy viết chương trình tìm thời gian ngắn nhất để chú chuột ăn hết tất cả phô mai. Lưu ý rằng thời gian chú chuột ăn phô mai có thể bỏ qua.

Dữ liệu vào

Dữ liệu vào gồm $H+1$ dòng. Dòng thứ $1$ chứa $3$ số nguyên $H$, $W$, $N$ ($1 \le H \le 1000$, $1 \le W \le 1000$, $1 \le N \le 9$) theo thứ tự đó, cách nhau bởi dấu cách. Mỗi dòng từ dòng thứ $2$ đến dòng thứ $H+1$ chứa một xâu gồm $W$ ký tự tạo bởi S, 1, 2, $\dots$, 9, X, ., biểu thị trạng thái của từng ô. Nếu ký hiệu ô thứ $i$ tính từ phía bắc và thứ $j$ tính từ phía tây là $(i, j)$ ($1 \le i \le H, 1 \le j \le W$), thì ký tự thứ $j$ ở dòng thứ $i+1$ là S nếu ô $(i, j)$ là tổ chuột, là X nếu là chướng ngại vật, là . nếu là bãi đất trống, và lần lượt là 1, 2, $\dots$, 9 nếu là nhà máy sản xuất phô mai có độ cứng $1, 2, \dots, 9$. Trong dữ liệu vào, tổ chuột và các nhà máy sản xuất phô mai có độ cứng $1, 2, \dots, N$ mỗi loại có đúng $1$ cái. Các ô còn lại được đảm bảo là chướng ngại vật hoặc bãi đất trống. Chú chuột được đảm bảo có thể ăn hết tất cả phô mai.

Dữ liệu ra

In ra trên $1$ dòng một số nguyên biểu thị thời gian ngắn nhất (tính bằng phút) để ăn hết tất cả phô mai.

Ví dụ

Ví dụ đầu vào 1

3 3 1
S..
...
..1

Ví dụ đầu ra 1

4

Ví dụ đầu vào 2

4 5 2
.X..1
....X
.XX.S
.2.X.

Ví dụ đầu ra 2

12

Ví dụ đầu vào 3

10 10 9
.X...X.S.X
6..5X..X1X
...XXXX..X
X..9X...X.
8.X2X..X3X
...XX.X4..
XX....7X..
X..X..XX..
X...X.XX..
..X.......

Ví dụ đầu ra 3

91

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.