Serverite kolimine | 프로그래밍의 벗 PivotOJ
PivotOJ

Serverite kolimine

시간 제한: 3000ms메모리 제한: 1024MB출처: EIO 2018-19 finalBOJ 29947

문제

Tehnik saadetakse ühte väga kitsasse serveriruumi ülesandega tõsta kõik seadmepüstikus A olevad kahe eri tootja serverid ümber seadmepüstikutesse B ja C nii, et kõik tootja X serverid oleks lõpuks püstikus B ja tootja Y serverid püstikus C.

Kõnealused seadmepüstikud on sellise ehitusega, et servereid saab neisse paigutada ainult ülevalt ja igas pesas on selline toiteplokk, mis töötab ainult siis, kui selles asuva serveri energiatarve on väiksem kui vahetult selle all asuva serveri energiatarve. Püstiku põhjas olev toiteplokk suudab ära toita igasuguse nimetatud tootjate serveri.

Kuna tehnikul on lubatud seisata ainult üks server korraga, siis peab ta töötama selliselt, et seiskab serveri, mis asub mõne püstiku kõige ülemises hõivatud pesas, tõstab serveri mõne teise püstiku esimesesse vabasse pessa ja käivitab selle uuesti. Kõige selle juures peab ta jälgima, et ta kunagi ei asetaks suurema energiatarbega serverit väiksema energiatarbega serveri peale.

Kirjutada programm, mis leiab võimalikult väheste operatsioonidega plaani serverite kolimiseks.

입력

Faili esimesel real on püstikus A olevate serverite arv NN (1N201 \le N \le 20) ja tootja X serverite arv KK (0KN0 \le K \le N). Teisel real on KK arvu, mis on tootja X serverite numbrid kasvavas järjekorras. Serverid on nummerdatud 1N1 \ldots N energiatarbe kasvamise järjekorras.

출력

Faili väljastada serverite liigutamiseks vajalikud operatsioonid, igaüks eraldi reale. Igale reale väljastada lähtepüstiku tähis, siis nool '->' ja lõpuks sihtpüstiku tähis.

예제

예제 1

입력
3 2
1 3
출력
A->B
A->C
B->C
A->B
C->B
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.