QOJ.ac

QOJ

Süre Sınırı: 1 s Bellek Sınırı: 512 MB Toplam puan: 100

#1127. 病毒實驗

İstatistikler

你知唔知道 Just Odd Inventions Co., Ltd.?呢間公司嘅業務就係搞「古怪發明」。喺呢度,我哋簡稱佢做 JOI Company。

JOI Company 研發咗一種新病毒「JOI Virus」。佢哋想做個實驗,令 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}{lll} M & R & C \\ D \\ U_{1,1} & \cdots & U_{1,C} \\ \vdots & & \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.