7548 - PA - Who will win?(II)   

Description

紅線和蛋糕最近在規劃一個尋寶行動,但他們在討論的過程中時常因意見不合而產生紛爭。好麻吉爭吵難免,只是要解決就需要一些智慧了!為了解決這個問題,他們用數字卡發明了一個遊戲:拿出N張卡片隨意排成一列,兩個人分別從籤筒裡抽出一個1~N的數字a,b,在第a張卡片前的卡片中,比卡片a的數字大的卡片數量就是紅線的得分。在第b張卡片前的卡片中,比卡片b的數字大的卡片數量是蛋糕的得分,進行Q個回合後,贏比較多回合的人的意見會被採用。一切到這裡看起來是如此美好,只是當他們第一次玩這個遊戲時便發生了一個棘手的問題。卡片數量最多有100000張,光是要計算自己的得分就得算到天荒地老了吧!你可以寫程式幫助他們快速的判斷誰輸誰贏嗎?
紅線和蛋糕寫了單純的for迴圈,覺得太慢才請大家幫忙的!你必須想出更快的方法完成任務喔~

Input

輸入含有多組測試資料,每組測試資料的第一列有兩個整數N Q,代表卡片的數量及進行的回和數。第二列有N個數字,代表第1~N張卡片上的數字。接著有Q列,每列有兩個數a b,分別為紅線和蛋糕抽出的數字。每組測資後有空白行。
1<=N,Q<=100000。1<=a,b<=N。0<=卡片上的數字<=2^32

第一組測資說明:有8張卡片,1個回合。紅線抽到的數字是5,第5張卡片上面的數字是1,前面四張卡片上的數字(6,2,2,6)都>1,所以紅線的得分是4。蛋糕抽到的數字是3,第3張卡片上的數字是2,前面兩張卡面的數字中(6,2)只有6>2,所以蛋糕的得分是1。
紅線贏得這個回合。

Output

對於每筆測資,請分別輸出紅線和蛋糕的得分(以一個空白隔開),接著輸出在此回合勝利的人(R:紅線, C:蛋糕, S:平手)。每組測資後輸出一空白行。請參考sample output。

Sample Input  Download

Sample Output  Download

Tags




Discuss