マルチテストについての説明はこちら (サンプル問題を確認されていない方のみお読みください。)
配点: 点
P
, D
, C
, A
のみからなる文字列を PDCA-String と呼びます.
さらに,PDCA-String が以下の条件を満たすとき,またそのときに限って は PDCA-Cyclic であるといいます:
PD
, DC
, CA
, AP
のいずれかである.たとえば PDCA-String DCAPDCAPDCAPDCA
, A
, DCA
はいずれも PDCA-Cyclic です.
長さ の PDCA-String があります.
また,次の操作を 回以上何度でも行えます:
が PDCA-Cyclic であるようにすることが目標です.
この目標が達成可能か判定し,できるならばそのために必要な操作回数の最小値を求めてください.
各テストケースの入力は,それぞれ以下の形式で与えられる:
有限回の操作によって目標を達成できるならば,操作を行う回数の最小値を出力せよ.
どのように操作を行っても目標を達成できないならば -1
と出力せよ.
1 5 ACDPP
3
たとえば次のようにして 回の操作で目標を達成できます:
CDPAP
となる.DPCAP
となる.PDCAP
となる.どのようにしても 回未満の操作では目標を達成できないので, が答えです.
5 6 CAPDCA 3 PCD 5 DACAP 4 PPAP 1 C
0 2 3 -1 0