QOJ.ac

QOJ

Süre Sınırı: 2 s Bellek Sınırı: 2048 MB Toplam puan: 100 Zorluk: [göster]

#8811. 中暑

İstatistikler

JOI 島由 $L$ 個地區組成,由西至東編號為 $1$ 至 $L$。島上有 $L-1$ 條道路,編號為 $1$ 至 $L-1$。道路 $i$($1 \le i \le L-1$)雙向連接地區 $i$ 同地區 $i+1$。

problem_8811_8f70de29c3896fef70fc44cc5ef4fb28.png

而家,國際資訊奧林匹克(IOI 20XX)計劃喺 JOI 島舉行!問題係,呢個島以極端炎熱出名。中暑風險好高,尤其係未適應炎熱環境嘅外國參賽者。所以 IOI 主辦單位決定採取以下措施:

  • 首先,對每個 $i$($1 \le i \le L$),喺地區 $i$ 準備一間可以容納 $C_i$ 人嘅醫院。請留意,有可能 $C_i=0$。
  • IOI 期間,如果有人喺道路 $x$($1 \le x \le L-1$)中暑,就按以下程序送院:

    • 將病人送去地區 $x$ 或者地區 $x+1$ 嘅醫院,揀其中一間未滿嘅。如果兩間都未滿,揀邊間都可以。如果兩間都滿,就用直升機將病人送去島外嘅綜合醫院。

由於使用直升機好貴,主辦單位想估計最多會有幾多名病人要用直升機送走。佢哋考慮以下情況作為例子:

  • IOI 開始之前,所有醫院都冇病人。
  • IOI 期間,JOI 島上會有 $N$ 個人中暑。第 $j$ 名病人($1 \le j \le N$)喺道路 $X_j$ 出現。
  • 對每個 $j$($1 \le j \le N-1$),當第 $j+1$ 名病人中暑時,第 $j$ 名同之前所有病人都已經送咗院。由於中暑症狀嚴重,IOI 期間唔會有病人出院。

請寫一個程式,根據地區數目、醫院同中暑病人嘅資訊,計算喺上述情況下最多有幾多名病人要用直升機送走。

輸入格式

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

L
C_1 C_2 ... C_L
N
X_1 X_2 ... X_N

輸出格式

向標準輸出輸出一行,包含最多要用直升機送走嘅病人數目。

資料範圍

  • $2 \le L \le 8\,000$。
  • $0 \le C_i \le 8\,000$($1 \le i \le L$)。
  • $1 \le N \le 8\,000$。
  • $1 \le X_j \le L-1$($1 \le j \le N$)。
  • 所有畀出嘅值都係整數。

子任務

  1. (6 分) $X_1 \le X_2 \le \cdots \le X_N$。
  2. (7 分) $L \le 18$,$N \le 18$,$C_i=1$($1 \le i \le L$)。
  3. (7 分) $L \le 18$,$N \le 100$,$C_i=1$($1 \le i \le L$)。
  4. (25 分) $L \le 100$,$N \le 100$,$C_i=1$($1 \le i \le L$)。
  5. (25 分) $L \le 100$,$N \le 100$。
  6. (10 分) $L \le 600$,$N \le 600$。
  7. (15 分) $L \le 3\,500$,$N \le 3\,500$。
  8. (5 分) 冇額外限制。

範例

輸入格式 1

3
1 1 1
3
1 2 2

輸出格式 1

1

說明

如果發生以下情況,就會有 1 名病人要用直升機送走。

  1. 將第 1 名病人送去地區 $2$ 嘅醫院。之後,地區 $1,2,3$ 嘅醫院病人數目分別係 $0,1,0$。
  2. 將第 2 名病人送去地區 $3$ 嘅醫院。之後,地區 $1,2,3$ 嘅醫院病人數目分別係 $0,1,1$。
  3. 對第 3 名病人,由於地區 $2$ 同 $3$ 嘅醫院都滿咗,所以用直升機將病人送去島外嘅綜合醫院。

由於唔可能有 2 名或者更多病人要用直升機送走,所以輸出 1。

呢筆範例輸入滿足子任務 $1,2,3,4,5,6,7,8$ 嘅限制。

輸入格式 2

6
1 1 1 1 1 1
7
1 3 5 4 2 2 3

輸出格式 2

3

說明

如果發生以下情況,就會有 3 名病人要用直升機送走。

  1. 將第 1 名病人送去地區 $2$ 嘅醫院。之後,地區 $1,2,3,4,5,6$ 嘅醫院病人數目分別係 $0,1,0,0,0,0$。
  2. 將第 2 名病人送去地區 $4$ 嘅醫院。之後,地區 $1,2,3,4,5,6$ 嘅醫院病人數目分別係 $0,1,0,1,0,0$。
  3. 將第 3 名病人送去地區 $5$ 嘅醫院。之後,地區 $1,2,3,4,5,6$ 嘅醫院病人數目分別係 $0,1,0,1,1,0$。
  4. 對第 4 名病人,由於地區 $4$ 同 $5$ 嘅醫院都滿咗,所以用直升機將病人送去島外嘅綜合醫院。
  5. 將第 5 名病人送去地區 $3$ 嘅醫院。之後,地區 $1,2,3,4,5,6$ 嘅醫院病人數目分別係 $0,1,1,1,1,0$。
  6. 對第 6 名病人,由於地區 $2$ 同 $3$ 嘅醫院都滿咗,所以用直升機將病人送去島外嘅綜合醫院。
  7. 對第 7 名病人,由於地區 $3$ 同 $4$ 嘅醫院都滿咗,所以用直升機將病人送去島外嘅綜合醫院。

由於唔可能有 4 名或者更多病人要用直升機送走,所以輸出 3。

呢筆範例輸入滿足子任務 $2,3,4,5,6,7,8$ 嘅限制。

輸入格式 3

6
4000 1 1 0 4000 1
5
1 1 2 3 5

輸出格式 3

1

說明

呢筆範例輸入滿足子任務 $1,5,6,7,8$ 嘅限制。

輸入格式 4

5
1 2 2 2 1
8
2 3 2 1 4 1 2 3

輸出格式 4

2

說明

呢筆範例輸入滿足子任務 $5,6,7,8$ 嘅限制。

輸入格式 5

10
2 2 2 2 2 2 2 2 2 2
18
1 3 5 7 9 2 4 6 8 1 3 5 7 9 2 4 6 8

輸出格式 5

3

說明

呢筆範例輸入滿足子任務 $5,6,7,8$ 嘅限制。

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.