UVa11235 - Frequent values

出處:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=problem_stats&problemid=2176&category=0

解題策略:RMQ(range maximum query)

原輸入資料到陣列in,計算每個數字的個數到陣列cnt,

原輸入陣列數值所對應的編號到陣列ser,原輸入陣列相同數值的左邊界到le,右邊界到ri。

輸入的查詢範圍x與y,根據ser[x]與ser[y]查詢數值編號。若ser[x]等於ser[y],則查詢範圍內只有一種數字,答案為y-x+1;否則查詢範圍內只有兩種以上數字,先計算左邊數字的個數ri[x] - x + 1,接著計算右邊數字的個數y - le[y] + 1;若有三種以上數字,使用RMQ計算cnt[ser[x]+1],...,cnt[ser[y]-1]的最大值,取這三個數字的最大值就是解答。