x.希望與絕望 ~(Record)~
串串最近迷上了一款遊戲,故事講述一群少年簽訂契約後成為一中生,對抗邪惡組織的熱血劇情。總之這個遊戲的戰鬥機制如下: 每一關會有0~9個敵人,位於一個3*3的九宮格內,每個格子最多只有一個敵人。每個敵人都有一個血量值,當血量值達到0時,敵人就視為被消滅了。只要玩家能在一定回合數內消滅所有敵人,就可以過關。 玩家在關卡開始時會選一位「英雄」,該英雄會有兩個數值:攻擊力(ATK)和魔法傷害(MH),這兩個數值依英雄本身的性質而定,同時關卡開始時也會有兩個數值:充能(C)和魔力(MP),這兩個數值一開始皆為0。 每回合開始時,玩家可以瞄準一個尚未被消滅的敵人(以下簡稱「目標」)並從以下三個動作中選一個執行。 爆破(Blast):又分為橫向爆破與縱向爆破,對該目標所在的行(縱向)或是列(橫向)上的所有敵人造成\(ATK*(1+0.2*C)\)點傷害(向下取整數),C歸零。 速攻(Accele):對目標造成 \( ATK \)點傷害,同時MP增加 \( 20 + 2*C \),C歸零。 充能(Charge):對目標造成 \( ATK \)點傷害,MP增加2,C增加1。 此外,當MP達到100時,該回合會被動追加一次魔法攻擊(Magia),此時MP歸零,無論原本MP為多少。 魔法攻擊(Magia):對所有敵人造成\( MH \)點傷害。 聽完這些後,串串覺得真是複雜,於是他寫了一個自動排程系統,運作方式如下: 有一個預先計算好的字串S,系統每回合會依序執行其中的指令('C' = Charge, 'A' = Accele, 'B' = Blast(橫向), 'b' = Blast(縱向)),而系統會選擇最右邊且尚未被消滅的敵人作為目標,若這樣的敵人有數個,則選擇最上面的敵人。 你的目標是計算串串的系統需要幾回合才能破關。
輸入格式
第一行是一個字串S,表示系統的指令排程。 (\(0 < 長度 <= 100\)) 再來有2個正整數(\( <= 100000\)),表示所選英雄的 ATK、MP。 最後有3*3的正整數列(\( <= 1000000\)),表示敵人的血量值,如果該值為0表示那個格子上沒有敵人。
輸出格式
輸出串串的系統需要幾回合才能破關,若破不了關(即排程跑完還有敵人未被消滅)輸出-1。
範例輸入 1
CBAbAACCB
5000 10000
0 10000 5000
5000 5000 5000
0 5000 0
範例輸出 1
4
範例輸入 2
AAAAAABBBBB
1 9000
8888 8888 8888
8888 8888 8888
8888 8888 8888
範例輸出 2
5
範例輸入 3
CCCCCBbBbBb
100000 100000
0 0 0
0 1000000 0
0 0 0
範例輸出 3
9
範例輸入 4
CACCABCCCAAbbBB
1 9000
8888 8888 8888
8888 8888 8888
8888 8888 8888
範例輸出 4
11
範例輸入 5
bbbbbbbbbb
1 1
0 0 0
0 0 0
0 0 0
範例輸出 5
0
提示
對於前10%的測資:只有一個敵人且只有指令"B" 對於前30%的測資:沒有指令"C"
留言