만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

연필 뒤집기

면접 대비

시간 제한1초메모리 제한1024 MB

요약
N개의 연필이 뾰족한 쪽 또는 뭉툭한 쪽을 향하고 있을 때, 구간을 뒤집어 모든 연필의 방향을 같게 만드는 최소 횟수와 각 뒤집기 구간을 구합니다.
난이도

보통10점 중 4점

유형
그리디, 문자열, 구현
정답자
아직 제출이 없습니다

문제

Pille의 상자에는 연필 NN개가 왼쪽에서 오른쪽으로 나란히 들어 있다. 연필에는 왼쪽부터 1,2,…,N1, 2, \ldots, N번의 번호가 매겨져 있다.

Pille은 상자 안의 연필을 모두 같은 방향으로 맞추고 싶어 한다. 그런데 뾰족한 끝이 위를 향한 연필도 있고, 아래를 향한 연필도 있을 수 있다. Pille은 한 번의 동작으로 이웃한 연필을 몇 개든 골라 뒤집을 수 있다. 필요하면 이런 동작을 여러 번 해도 된다.

Pille은 가장 적은 동작으로 모든 연필을 같은 방향으로 맞추려면 어떤 연필을 뒤집어야 하는지 알고 싶어 한다. 필요하다면 어떤 연필을 앞뒤로 여러 번 뒤집어도 된다.

입력

첫째 줄에 연필의 개수 NN(1≤N≤1 0001 \le N \le 1\,000)이 주어진다. 둘째 줄에는 정확히 NN개의 문자가 주어진다. 문자 t는 뾰족한 끝이 위에 있는 연필을, 문자 n은 뭉툭한 끝이 위에 있는 연필을 뜻한다.

출력

첫째 줄에 동작의 횟수 MM을 출력한다. 이어지는 MM개의 줄에는 각각 A-B를 출력한다. 이는 한 번의 동작으로 AA번 연필부터 BB번 연필까지(두 번호 모두 포함) 전부 뒤집는다는 뜻이다. 마지막에 뾰족한 끝이 위에 있든 아래에 있든 상관없다. 중요한 것은 모든 연필이 같은 방향을 향하는 것이다. 동작 횟수가 최소인 방법이 여러 가지라면 그중 아무거나 출력한다.

힌트

이 예시에서는 먼저 4번부터 7번 연필을 뒤집는다. 그러면 상태가 tttttntttt가 된다. 그다음 6번 연필을 다시 뒤집으면 모든 연필이 같은 방향을 향한다. 이 방법만 가능한 것은 아니지만, 이보다 적은 동작으로 끝내는 방법은 없다.

예제1

  1. 예제 1

    입력
    10
    tttnntnttt
    
    예상 출력
    2
    4-7
    6-6