x.希望與絕望 ~(Record)~


Submit solution

分數: 100 (partial)
時間限制: 1.0s
記憶體限制: 1G

作者:
題目類型
允許的語言
Assembly, Brainfuck, C, C++, Python

串串最近迷上了一款遊戲,故事講述一群少年簽訂契約後成為一中生,對抗邪惡組織的熱血劇情。總之這個遊戲的戰鬥機制如下: 每一關會有0\(9個敵人,位於一個3*3的九宮格內,每個格子最多只有一個敵人。每個敵人都有一個血量值,當血量值達到0時,敵人就視為被消滅了。只要玩家能在一定回合數內消滅所有敵人,就可以過關。 玩家在關卡開始時會選一位「英雄」,該英雄會有兩個數值:攻擊力(ATK)和魔法傷害(MH),這兩個數值依英雄本身的性質而定,同時關卡開始時也會有兩個數值:充能(C)和魔力(MP),這兩個數值一開始皆為0。   每回合開始時,玩家可以瞄準一個尚未被消滅的敵人(以下簡稱「目標」)並從以下三個動作中選一個執行。 <strong>爆破(Blast):</strong>又分為橫向爆破與縱向爆破,對該目標所在的行(縱向)或是列(橫向)上的所有敵人造成\) ATK(1+0.2C) \(點傷害(向下取整數),C歸零。 <strong>速攻(Accele):</strong>對目標造成 \) ATK \(點傷害,同時MP增加 \) 20 + 2*C \(,C歸零。 <strong> 充能(Charge):</strong>對目標造成 \) ATK \(點傷害,MP增加2,C增加1。   此外,當MP達到100時,該回合會被動追加一次<strong>魔法攻擊(Magia)</strong>,此時MP歸零,無論原本MP為多少。 <strong>魔法攻擊(Magia):</strong>對所有敵人造成\) 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

// 2
AAAAAABBBBB
1 9000
8888 8888 8888
8888 8888 8888
8888 8888 8888

// 3
CCCCCBbBbBb
100000 100000
0 0 0
0 1000000 0
0 0 0

// 4
CACCABCCCAAbbBB
1 9000
8888 8888 8888
8888 8888 8888
8888 8888 8888

// 5
bbbbbbbbbb
1 1
0 0 0
0 0 0
0 0 0

範例輸出

// 1
4

// 2
5

// 3
9

// 4
11

// 5
0

提示

對於前10%的測資:只有一個敵人且只有指令"B" 對於前30%的測資:沒有指令"C"


評論

目前沒有評論。