e120: Q-7-11. 紅白彩帶 (APCS201902)
Tags : 併查集
Accepted rate : 0人/0人 (0%) [非即時]
評分方式:
Tolerant

最近更新 : 2024-03-04 19:19

Content

一條彩帶被分成 n 個相同大小的格子,有的格子是紅色,有些則是白色。小軒拿到彩帶後開始塗顏色,每次會將一個白色格子塗滿紅色,然後小軒會算一算目前最長與最短紅色區域的長度佔了幾格,相鄰的紅色格子就屬於同一個紅色區域。小軒一共塗了 k 次,請你計算出每一次紅色區域的最大與最小長度,並輸出個別的總和。

彩帶可以看成一維陣列,以 0 表示白色,而 1 表示紅色。彩帶的格子從 1 開始由左 而右依序編號,小軒每次將某個格子塗上紅色。以下是一個例子。

以這個例子而言,每一次(包含剛開始) 紅色區域的最大長度總和是 2+2+3+4=11;而紅色區域的最小長度總和是 1+1+1+3=6。

Time limit: 1 秒

Input

輸入有三行,第一行是兩個整數,依序是 n 與 k,代表彩帶長度以及小軒塗色的次數,n <= 1e5、k <= 2e4。第二行有 n 個 0 或 1 的數字,依序代表彩帶第 1 格至第 n 格的顏色,0 代表白色,1 代表紅色。第三行有 k 個數字,依序代表每一次塗紅色的格子編號,若 k = 0,則第三行為空行。同一行數字之間都是以空白間隔。小軒每次一定都塗在白色格子,而且紅色區域的長度不會超過 10100。

Output

輸出兩行,第一行是每次紅色區域最大長度的總和,第二行是每次紅色區域最小長度的總和。

Sample Input
範例一:
5 1
1 0 1 0 1
2

範例二:
9 3
0 1 1 0 0 1 0 1 0
5 1 7
Sample Output
範例一:
4
2

範例二:
11
6
測資資訊:
記憶體限制: 64 MB
公開 測資點#0 (20%): 1.0s , <1M
公開 測資點#1 (20%): 1.0s , <1M
公開 測資點#2 (20%): 1.0s , <1M
公開 測資點#3 (20%): 1.0s , <1M
公開 測資點#4 (20%): 1.0s , <1M
Hint :

範例一說明:一開始最大長度是 1 而最小長度也是 1,塗在第二格之後最大長度是 3 而最小長度還是 1。最大長度總和為 1+3=4;最小長度總和為 1+1=2。

範例二說明:此為題目中所舉的例子。

Tags:
併查集
出處:
AP325 [管理者:
mcjksieu005 (mcjksieu005)
]


ID User Problem Subject Hit Post Date
沒有發現任何「解題報告」