死靈法師的經典技能就是不死召喚

發布時間: Oct. 4, 2023, 11:45 a.m.   最後更新時間: Nov. 15, 2023, 3:16 p.m.   時間限制: 1000ms   記憶體限制: 128M

躲貓貓社的社窩裡,滿是散落一地的美術用具與只完成一半的壁報。

昏黃的燈光令人感到不適。

左方的一排棕綠鏽蝕的鐵架,雖然布滿灰塵,還是整整齊齊的掛著各式cos服裝。

突然有人進來了,伸手翻了翻衣架,衣架的螺絲發出刺耳的哀號。那人拉出了一件黑綠的長袍捻了捻,感到非常滿意。

醒來的bar和foo兩隻小精靈看到主人,立刻從廢棄的枕頭堆裡跳出來,往那人身上蹭。餵食完兩隻小精靈後,那人穿戴好與長袍搭配的整套服裝,拿著紫金閃耀光芒的金屬手杖,口中念念有詞後,走進了牆壁裡。

牆壁的另一頭,是棟山腳下的小木屋,採光良好通風佳,門上還精美的刻著"TANANO"

「啊哈!果然是我大死靈法師塔納諾的傑作!要不是因為在另一邊的世界裡使用魔法會被抓去解剖,我才不要把哪裡弄得那麼髒亂呢!」

「今天是時候擴充我的不死大軍(三隻蝙蝠)了!」

於是她在青赭灌木叢雜而生的地方找到了一群"鴿"布林,詠唱好難念的魔法,然後發射出去,打中其中一隻"鴿"布林。

「哈哈哈!你們都變成我的不死大軍吧!」

共有三種不同類型的"鴿"布林:瘦子"鴿"布林(1),胖子"鴿"布林(2)和混亂"鴿"布林(3)
當魔法球打中"鴿"布林時:
如果是瘦子"鴿"布林(1),那它會原地變成蝙蝠
如果是胖子"鴿"布林(2),不只它會原地變成蝙蝠,還會反射魔法餘波到它左右兩邊的生物身上,相當於其左右兩隻怪物都被魔法球打中
例如位置為$n$的胖子"鴿"布林被魔法球打中,位置($n-1$)和($n+1$)的"鴿"布林將也被魔法球打中
如果是混亂"鴿"布林(3),不只它會原地變成蝙蝠,還會反射魔法餘波到它左右與其間隔一格的生物身上。
例如位置為$n$的混亂"鴿"布林被魔法球打中,位置($n-2$)和($n+2$)的"鴿"布林將也被魔法球打中

輸入$n$ (0 < $n$ < 10000)代表有$n$隻"鴿"布林照順序排成一列
接下來有n個數(編號0~n-1),代表每隻"鴿"布林的品種(1~3)。
最後輸入一個數m,代表最初魔法球打到哪隻"鴿"布林

輸出多產生了幾隻蝙蝠

複製範例
10
1 1 1 1 1 1 1 1 1 1
5
1
複製範例
4
1 1 3 1
2
2
複製範例
10
3 1 3 1 3 1 3 1 3 1
0
5

解釋範例測資1:

魔法打到5 號"鴿"布林,品種是1,故只產生1隻蝙蝠

解釋範例測資2:

魔法打到2 號"鴿"布林,品種是3,故自己變成蝙蝠的同時,反彈魔法到0號和4號位置

0號位置的"鴿"布林品種是1,故產生一隻蝙蝠。4號位置沒東西,無事發生。

共產生兩隻蝙蝠。

解釋範例測資3:

魔法打到0 號"鴿"布林,品種是3,故自己變成蝙蝠的同時,反彈魔法到-2號(沒東西)和2號位置(品種為3)

2號位置"鴿"布林品種為3,故自己變成蝙蝠的同時,反彈魔法到0號(沒東西)和4號位置(品種為3)

依此類推。

題目敘述看不懂歡迎問我,我會想辦法解釋的(;´д`)ゞ

recursion

第39屆進階組資格考