P1532 [2010年NOIP提高組] 烏龜棋
來源 : 2010年NOIP提高組
描述
小明過生日的時候,爸爸送給他一副烏龜棋當作禮物。
烏龜棋的棋盤是一行N個格子,每個格子上一個分數(非負整數)。棋盤第1格是唯一的起點,第N格是終點,遊戲要求玩家控制一個烏龜棋子從起點出發走到終點。
沒有使用過的爬行卡片,控制烏龜棋子前進相應的格子數,每張卡片只能使用一次。遊戲中,烏龜棋子自動獲得起點格子的分數,並且在後續的爬行中每到達一個格子,就得到該格子相應的分數。玩家最終遊戲得分就是烏龜棋子從起點到終點過程中到過的所有格子的分數總和。很明顯,用不同的爬行卡片使用順序會使得最終遊戲的得分不同,小明想要找到一種卡片使用順序使得最終遊戲得分最多。
現在,告訴你棋盤上每個格子的分數和所有的爬行卡片,你能告訴小明,他最多能得到多少分嗎?
輸入
輸入的每行中兩個數之間用一個空格隔開。
第1行2個正整數N和M,分別表示棋盤格子數和爬行卡片數。
第2行N個非負整數,a1, a2,......, aN,其中ai表示棋盤第i個格子上的分數。
第3行M個整數,b1,b2,......, bM,表示M張爬行卡片上的數字。輸入數據保證到達終點時剛好用光M張爬行卡片,即
輸出
輸出只有1行,1個整數,表示小明最多能得到的分數。
樣例輸入
9 5 6 10 14 2 8 8 18 5 17 1 3 1 2 1
樣例輸出
73
提示
【輸入輸出樣例說明】
小明使用爬行卡片順序爲1,1,3,1,2,得到的分數爲6+10+14+8+18+17=73。注意,由於起點是1,所以自動獲得第1格的分數6。