TopCoder

abcabcabc
快去寫 TIOJ 2311 > <

User's AC Ratio

50.0% (1/2)

Submission's AC Ratio

21.1% (4/19)

Tags

Description

PSP出來一陣子了。隨著PSP出來的一款遊戲,叫作 “DJmax Portable 2”。

簡單的講,這是一個節奏遊戲。DJmax 的特點,強調歌曲的節奏感。一般來講,DJmax歌曲的按鍵音,是以鼓聲等等的打擊樂器,讓玩家有身為DJ的感覺。

如果你想知道的更多,你可以從下面的網址觀看。
http://www.youtube.com/watch?v=2pxsq-nA6o4
http://tw.youtube.com/watch?v=ZKb9xmvV00E

類似其它節奏遊戲,DJmax也有連擊數(combo)。如果在遊戲過程中沒有失誤,combo越多,分數也就越高。此外,DJmax除了單鍵音(塊狀,按一下即可),也有連續音(條狀連續,需久按)。準確的彈到單鍵音,毫無疑問,combo數加上1,但準確的彈到連續音,則視連續音的長度,長度越長,combo數也加的越多。在節奏遊戲中這算是一種創新,因為當玩家看到combo數快速增加,會越彈越好,越彈越有精神。

除此之外,DJmax還有一種東西叫作fever。當彈對的鍵數達到一定的個數時,就有發動fever的機會。當你發動fever,你將有一段時間讓所按到的鍵combo數x2。換句話說,在這段時間中,每按到一個單鍵音,combo數都是加2,連續音也是以一定的頻率翻高2。更甚者,如果你有辦法在這段時間內再集到一次fever,那麼再一次發動則是combo數x3,同樣的,你擁有一段時間為下一次fever作準備,往下則依此類推。如果在時間內無法集到fever,則變回原本的模式,也就是彈一個鍵combo只加上1。

fever的出現,大大增加了整個遊戲的可玩性。

想像你和一群選手在鬥陣,這次的比賽是六鍵的比賽(6-button competition)。你們這群高手號稱有不敗的記錄,不管是哪首歌,都可以”max combo”(整首曲子每個鍵都彈到,沒有失誤)。這時候,fever就很重要了。你要在哪個時機發動fever,讓你的combo數盡量的多,那麼你的分數絕對比別人高。

為了讓題目簡化,在此我們規定一些事情。每首歌都是4/4拍,且最短音符為十六分音符。換句話講,每個小節只會有4拍,每拍最多有4個音符。在一般的情況下,連續音的combo增加方法,當按下去的那一瞬間combo數加1,之後每半拍都加1。當你彈對的個數累積到20個音,你就可以發動fever。請注意,因為人有反應時間,所以看到可發動fever的訊號時,要過四分之一拍的時間才能發動fever。發動fever後,連同按下去那一瞬間,你有兩個小節的時間讓combo加成。也就是說,發動第一次的fever,接下來兩個小節的時間每個音combo數都為2,在這段時間內再發動一次fever,則有兩個小節的時間combo數為3。

Input Format

測試檔第一行有一個數字M,代表接下來有幾組測資。
接下來的M組測資,每組測資代表著一首歌曲的譜。第一行有一個數字N(1<=N<=100),代表這個曲子有幾個小節。接下來會有N個小節,每個小節16行,每行6個字元。單鍵音以 ’_’ 作代表,連續音以 ‘#’ 作代表,沒有音符則以 ‘ ‘(空白)表示。注意,小節和小節間會以 “<<<<<<”或“>>>>>>” 作為分隔線。注意DJmax的音符是從上往下掉,所以樂譜的下方為開始,上方為結束。

Output Format

每組測資輸出一行:”You can get maxinum combo X.” X是我們要你求出的答案。

Sample Input 1

Sample Output 1

You can get maxinum combo 4.
You can get maxinum combo 8.
You can get maxinum combo 91.
You can get maxinum combo 78.

Hints

(因網頁上無法連續打兩個半形空白,所以說明以全形表示。測資保證全部皆為半形。)

以第三個測資為例:

<<<<<<

 #  #  combo: 91Testdata Sets (testdata no. starts from 0)
 #  # 
 #  #  combo: 85
 #  # 
 #  #  combo: 79
 #  # 
 #  #  combo: 73
 #  # 
 #  #  combo: 67 發動fever(x3),fever重集
 #  # 
 #  #  combo: 61 獲得發動fever的機會
 #  # 
 #  #  combo: 57
 #  # 
 #  #  combo: 53
<<<<<<
 #  # 
 #  #  combo: 49
 #  # 
 #  #  combo: 45
 #  # 
 #  #  combo: 41
 #  # 
 #  #  combo: 37
 #  # 
 #  #  combo: 33
 #  # 
 #  #  combo: 29
 #  # 
 #  #  combo: 25 發動fever(x2),fever重集
 #  # 
_#_ #_ combo: 21 獲得發動fever的機會
<<<<<<
  _    combo: 16
   _   combo: 15
    _  combo: 14
     _ combo: 13
   _   combo: 12
  _    combo: 11
 _     combo: 10
_      combo: 9
      
  _  _ combo: 8
      
_  _   combo: 6
      
 _  _  combo: 4
      
_    _ combo: 2

備註:
在現實世界中,當fever(x2)時,再按一次fever,其準備的時間比fever(x3)以上還久,不過在這題我們忽略這個狀況。
在現實世界中,fever最多只能到x5,不過在這題我們忽略這個狀況。

Problem Source

原TIOJ1222 / TIOJ 2008例行賽03-Elite (prob D)。Problem Setter:TimeString。

Subtasks

No. Testdata Range Score
1 0 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 5000 65536 262144 1