Fotografen | 프로그래밍의 벗 PivotOJ
PivotOJ

Fotografen

시간 제한: 2000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2014 — finalBOJ 26913
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

En fotograf har tagit många fina foton med sin digitalkamera och kopplar in den i sin dator för att överföra bilderna. Bilderna har tagits med olika vridningar av kameran så nu är vissa av bilderna roterade. Vi kallar de fyra möjliga rotationerna ett foto kan ha för upp, höger, ner och vänster och definierar det som den sida som motsvarar uppåt i bilden. En bild är vänd rätt om den är roterad upp. Datorn visar bilderna i en lista och har en funktion som roterar en bild 9090^\circ medurs. Rotationen sker alltså enligt följande ordning:

[이미지 1]

Hur en bild roteras

Fotografen tycker det verkar tråkigt att rotera foton och bestämmer sig för att göra det till ett roligt spel. Fotografen väljer ett positivt heltal kk och bestämmer att det enda sättet att rotera foton är att markera exakt kk intill varandra liggande foton ur listan och rotera alla dessa samtidigt. Formellt har fotografen NN foton, kalla dem a1,a2,aNa_1, a_2, \dots a_N. Fotografen kan nu välja ett index ii (1iNk+11 \leq i \leq N-k+1) och bilderna ai,ai+1,...,ai+k1a_i, a_{i+1}, ... , a_{i+k-1} roteras då 9090^\circ medurs. Detta kallar vi en operation.

Målet med spelet är att vända alla foton rätt med så få operationer som möjligt. Skriv ett program som beräknar det minsta antalet operationer som krävs.

입력

På första raden står två heltal NN och kk (1kN1000001 \leq k \leq N \leq 100\,000), antalet foton totalt respektive antalet foton som måste roteras samtidigt.

På andra raden står NN tecken som representerar fotografiernas rotation från början: U för upp, H för höger, N för ner och V för vänster.

출력

Skriv ut det minsta antalet operationer som krävs. Om det inte går att vända alla foton rätt, skriv ut 1-1.

힌트

En möjlig optimal lösning är denna: Rotera tre gånger på position 3-4 för att få UVVU, rotera sedan en gång på position 2-3 för att slutligen få UUUU, och vi är klara med fyra operationer utförda.

예제

예제 1

입력
4 2
UVUH
출력
4

예제 2

입력
8 5
HUNVVNVH
출력
9

예제 3

입력
5 2
UUUUV
출력
-1
코드를 제출하려면 로그인하세요.