Pliiatsite pööramine | 프로그래밍의 벗 PivotOJ
PivotOJ

Pliiatsite pööramine

시간 제한: 1000ms메모리 제한: 1024MB출처: EIO 2022-23 openBOJ 29824

문제

Pillel on karbis üksteise kõrval NN pliiatsit. Need on nummerdatud vasakult paremale 1,2,,N1, 2, \ldots, N.

Pille tahab, et kõik pliiatsid oleks karbis samapidi. Võib aga juhtuda, et mõnel pliiatsil on teritatud ots üleval, mõnel all. Siis võib Pille ühe liigutusega mingi arvu kõrvuti olevaid pliiatseid ümber pöörata. Vajadusel võib ta selliseid liigutusi teha mitu tükki.

Pille tahab teada, milliseid pliiatseid ta peaks pöörama, et võimalikult väikese arvu liigutustega kõik pliiatsid samapidi saada. Vajadusel võib mõnda pliiatsit ka mitu korda edasi-tagasi pöörata.

입력

Sisendi esimesel real on pliiatsite arv NN (1N10001\le N\le 1\,000). Teisel real on täpselt NN tähemärki. Täht \verb't' tähendab, et üleval on pliiatsi terav ots, täht \verb'n' aga, et üleval on nüri ots.

출력

Esimesele reale väljastada liigutuste arv MM. Järgmisele MM reale väljastada igaühele AA\verb'-'BB, mis näitab, et ühe liigutusega tuleks ümber pöörata kõik pliiatsid alates pliiatsist number AA ja lõpetades pliiatsiga number BB (pliiatsid number AA ja BB mõlemad kaasa arvatud). Ei ole tähtis, kas pööramiste lõpuks on kõigil pliiatsitel teritatud otsad üleval või all. Oluline on ainult, et kõik pliiatsid on samapidi. Kui vähima liigutuste arvuga pööramisviise on mitu, väljastada ükskõik milline neist.

힌트

Siin pööratakse kõigepealt ümber 4. kuni 7. pliiats, tulemus on \verb'tttttntttt'. Siis tuleb 6. pliiats uuesti ümber pöörata ja ongi kõik pliiatsid samapidi. Pane tähele, et see ei ole ainus viis kõik pliiatsid samapidi saada, kuid ei ole ühtegi väiksema liigutuste arvuga viisi.

예제

예제 1

입력
10
tttnntnttt
출력
2
4-7
6-6
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.