Login with GitHub. Nope?
修正 C++ 的程式碼在使用一定量動態記憶體後會產生 RF 的問題 @ 2019/12/6 4:45pm NeoHOJ 強勢復活中 (Open beta)
Submit  Ranklist

Problem : 201 - TRAMPOLIN

Problem Statistics

Solved Member: 16  Submission: 55  User Tried: 18

Statement:

世界上有很多超級英雄,像是蝙蝠俠、蜘蛛人、超人或是 Nekosyndrome...等等。在這些人之,有一位紳士名叫踢屁屁人。今天,他想要模仿蜘蛛人,所以他決定在一排摩天大樓之跳來跳去。

他已經選擇了一排摩天大樓,總共有 N 棟,編號從左到右依序為 1 到 N。一開始他在第 K 棟摩天大樓上面。不幸的是,他太廢了,所以他只能跳到相鄰的大樓上,並且目標大樓不能比所在大樓還要高。然而,為了不要顯出他太廢,他事先在某幾棟大樓上安裝噴射裝置,這個裝置使他可以移動到任何一座大樓,不管這棟大樓多高或是多遠。

請你計算出踢屁屁人能夠經過的最多「相異」大樓數,另外,一開始的大樓也算在經過的大樓當中。

Input:Output:

第一行有兩個整數 N 和 K(3 ≤ N ≤ 300 000, 1 ≤ K ≤ N),分別代表大樓數和一開始所在的大樓編號 K。

第二行有 N 個小於 106 的整數,由左而右依序代表各大樓的高度。

第三行由'.'和'T'構成,如果某一編號為'T',則代表該編號大樓上有噴射裝置。
請輸出唯一一行,代表踢屁屁人能經過的最多「相異」大樓數。

Sample Input:Sample Output:

SAMPLE A:
6 4
12 16 16 16 14 14
.T....

SAMPLE B:
10 1
10 7 3 1 1 9 8 2 4 10
..T..T....
SAMPLE A:
5

SAMPLE B:
7

HINT:

對於第二筆範例測資,踢屁屁人經過的大樓依序為:
1 → 2 → 3 → 6 → 10 → 9 → 8

Source:

COI 2012

Problem Setter

Testdata:

TestTimeMemoryScore
0-11500ms65536kb
0-21500ms65536kb
11500ms65536kb10
21500ms65536kb10
31500ms65536kb10
41500ms65536kb10
51500ms65536kb10
61500ms65536kb10
71500ms65536kb10
81500ms65536kb10
91500ms65536kb10
101500ms65536kb10