QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 512 MB Total points: 100

#1127. 病毒實驗

Statistics

你知道 Just Odd Inventions Co., Ltd. 嗎?這家公司的業務是進行「只是奇怪的發明(just odd inventions)」。這裡簡稱為 JOI Company。

JOI Company 開發了一種新病毒「JOI Virus」。JOI Company 想進行一項實驗,讓 IOI Island 的居民感染 JOI Virus。

IOI Island 的形狀是長方形。有 $R-1$ 條由東到西的平行道路,以及 $C-1$ 條由北到南的平行道路,將島嶼分成 $RC$ 個區域。每個區域恰好住著 1 位居民。我們將住在從北邊數第 $i$ 個、從西邊數第 $j$ 個區域($1 \le i \le R$, $1 \le j \le C$)的居民稱為「居民 $(i,j)$」。

在 IOI Island,一天分成 $M$ 個時段。我們將第 $k$ 個時段稱為「時段 $k$」。風總是從北、南、東、西其中一個方向吹來。風向可能隨時段改變。只要時段相同,不論是哪一天,風都會從相同方向吹來。

每位居民都有一個稱為「抵抗力」的狀態。居民 $(i,j)$($1 \le i \le R$, $1 \le j \le C$)的抵抗力以非負整數 $U_{i,j}$ 表示。

  • 若 $U_{i,j}=0$,表示居民 $(i,j)$ 的抵抗力很強,不會感染 JOI Virus。
  • 若 $U_{i,j}$ 是正整數,表示居民 $(i,j)$ 可能感染 JOI Virus。若下列條件連續維持 $U_{i,j}$ 個時段,該居民就會從下一個時段開始感染:

    • 在風吹來的方向上,相鄰區域的居民已經感染 JOI Virus。

請注意,一天的最後一個時段與隔天的第一個時段是連續的。

就實驗目的而言,我們希望至少感染 1 位居民,但又不希望感染太多居民。一開始,我們選擇 1 位居民作為首位感染者,讓其感染 JOI Virus。我們不能選擇抵抗力為 $0$ 的居民作為首位感染者。

給定每個時段風吹來的方向,以及每位居民的抵抗力,請編寫程式計算 $10^{100}$ 天後感染居民數的最小值,以及有多少位居民在被選為首位感染者時,能達到這個最小感染人數。

輸入格式

從標準輸入讀取以下資料。

$$ \begin{array}{l} M\ R\ C\\ D\\ U_{1,1}\ \cdots\ U_{1,C}\\ \vdots\qquad\vdots\\ U_{R,1}\ \cdots\ U_{R,C} \end{array} $$

$D$ 是長度為 $M$ 的字串,表示 IOI Island 上風吹來的方向。$D$ 由 N, S, W, E 這 4 種字元組成。第 $k$ 個字元($1 \le k \le M$)表示時段 $k$ 風吹來的方向。請注意,這不是風吹往的方向。N 表示北,S 表示南,W 表示西,E 表示東。

輸出格式

向標準輸出寫出兩行。

第一行應包含 $10^{100}$ 天後感染居民數的最小值。第二行應包含有多少位居民在被選為首位感染者時,能達到這個最小感染人數。

資料範圍

  • $1 \le M \le 100\,000$。
  • $1 \le R \le 800$。
  • $1 \le C \le 800$。
  • $D$ 是長度為 $M$ 的字串,且只包含 N, S, W, E。
  • $0 \le U_{i,j} \le 100\,000$($1 \le i \le R$, $1 \le j \le C$)。
  • 至少存在一對 $(i,j)$ 使得 $1 \le U_{i,j}$($1 \le i \le R$, $1 \le j \le C$)。

子任務

  1. (14 分)$D$ 只包含 W 與 E。
  2. (6 分)$1 \le R \le 50$,$1 \le C \le 50$。
  3. (80 分)沒有額外限制。

範例

輸入格式 1

6 3 4
SWNEES
2 1 1 2
1 0 1 3
1 1 2 2

輸出格式 1

8
8

說明

考慮選擇居民 $(3,1)$ 作為首位感染者的情況。

  • 對居民 $(2,1)$,在第 1 天的時段 $1$,風從南方吹來,而且南邊相鄰的居民已感染,因此該居民會從第 1 天的時段 $2$ 開始感染。
  • 對居民 $(3,2)$,在第 1 天的時段 $2$,風從西方吹來,而且西邊相鄰的居民已感染,因此該居民會從第 1 天的時段 $3$ 開始感染。
  • 對居民 $(1,1)$,在第 1 天的時段 $6$,風從南方吹來,而且南邊相鄰的居民已感染;在第 2 天的時段 $1$,風同樣從南方吹來,而且南邊相鄰的居民已感染,因此該居民會從第 2 天的時段 $2$ 開始感染。
  • 對居民 $(1,2)$,在第 2 天的時段 $2$,風從西方吹來,而且西邊相鄰的居民已感染,因此該居民會從第 2 天的時段 $3$ 開始感染。
  • 對居民 $(1,3)$,在第 3 天的時段 $2$,風從西方吹來,而且西邊相鄰的居民已感染,因此該居民會從第 3 天的時段 $3$ 開始感染。
  • 對居民 $(2,3)$,在第 3 天的時段 $3$,風從北方吹來,而且北邊相鄰的居民已感染,因此該居民會從第 3 天的時段 $4$ 開始感染。
  • 對居民 $(3,3)$,在第 4 天的時段 $2$,風從西方吹來,而且西邊相鄰的居民已感染;在第 4 天的時段 $3$,風從北方吹來,而且北邊相鄰的居民已感染,因此該居民會從第 4 天的時段 $4$ 開始感染。

之後不會再有居民感染 JOI Virus。因此,選擇居民 $(3,1)$ 作為首位感染者時,$10^{100}$ 天後會有 $8$ 位居民感染 JOI Virus。

無論選擇哪位居民作為首位感染者,都無法讓 $10^{100}$ 天後感染 JOI Virus 的居民數少於 $8$,所以第一行應輸出 $8$。若選擇居民 $(1,1)$、$(1,2)$、$(1,3)$、$(2,1)$、$(2,3)$、$(3,1)$、$(3,2)$ 或 $(3,3)$ 作為首位感染者,$10^{100}$ 天後的感染人數都會是 $8$,所以第二行應輸出 $8$。

輸入格式 2

4 4 4
EWWE
1 2 1 2
1 1 1 1
0 0 0 0
2 2 2 4

輸出格式 2

3
3

說明

此範例的輸入與輸出滿足子任務 1 的限制。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.