아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

겨울 올림픽

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

요약
이진 문자열에서 연속한 한 블록(빈 블록도 가능)을 1 하나로 바꾸거나 삽입해 결과 문자열이 사전순으로 가장 크도록 하는 위치와 길이를 찾는다.
난이도

보통10점 중 7점

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

문제

수호랑 인형

사진은 문제와 아무 상관이 없다. 아무튼 귀여운 수호랑이다.

꽁꽁 얼어붙은 오리연못에서 겨울 컬링 대회의 여자 결승전이 열리고 있다. 한국 팀은 즈웨펜(Jwepan) 팀과 마지막 한 점을 두고 맞붙는 중이다.

오리연못 위에는 컬링 스톤 NN개가 과녁에서 가까운 순서대로 일렬로 놓여 있다. 가장 왼쪽 돌이 과녁에서 가장 가깝고, 가장 오른쪽 돌이 과녁에서 가장 멀다. 각 돌은 한국 팀의 돌(1)이거나 즈웨펜 팀의 돌(0)이므로, 돌의 배치는 길이 NN의 이진 문자열 ss로 나타낸다.

한국 팀은 오랜 연습 끝에 기술 하나를 익혔다. 샤우팅을 몇 번 해 주면 영미가 연속해서 놓인 돌을 전부 쳐내고 그 자리에 자기 팀의 돌 하나를 놓는다. 즉, 한국 팀은 문자열의 구간 하나를 골라 그 구간을 문자 하나 1로 바꿀 수 있다. 구간은 문자열 전체여도 되고 비어 있어도 된다. 구간이 비어 있으면 그 자리에 1 하나가 새로 끼어들어 문자열의 길이가 1 늘어난다.

한국 팀은 이 연산을 정확히 한 번 해서 문자열을 사전 순 최대로 만들려고 한다. 어느 구간을 골라야 하는지 구하자.

길이 nn인 문자열 s=s1s2…sns = s_1 s_2 \dots s_n이 길이 mm인 문자열 t=t1t2…tmt = t_1 t_2 \dots t_m보다 사전 순으로 크다는 것은 다음 둘 중 하나가 성립한다는 뜻이다.

  • 어떤 ii에 대해 s1=t1s_1 = t_1, s2=t2s_2 = t_2, …\dots, si−1=ti−1s_{i-1} = t_{i-1}이고 si>tis_i > t_i이다.
  • n>mn > m이고 s1=t1s_1 = t_1, s2=t2s_2 = t_2, …\dots, sm=tms_m = t_m이다.

입력

첫째 줄에 돌의 개수 NN이 주어진다.

둘째 줄에 0과 1로만 이루어진 길이 NN의 문자열이 주어진다. 과녁에서 가까운 돌부터 먼 돌까지 차례대로 각 돌이 어느 팀의 것인지를 나타낸다. 문자 사이에 공백이나 따옴표는 없다.

출력

두 정수 SS와 LL을 공백으로 구분해 출력한다. 영미가 SS번째 문자 바로 뒤의 돌 LL개를 쳐내고 그 자리에 자기 팀의 돌 하나를 놓았다는 뜻이다. (0≤S0 \le S, L≤NL \le N)

사전 순 최대인 문자열을 만드는 (S,L)(S, L)이 여럿이면 SS가 가장 작은 것을 출력하고, 그런 (S,L)(S, L)이 또 여럿이면 그중 LL이 가장 작은 것을 출력한다.

제한

  • 1≤N≤1061 \le N \le 10^6

예제3

  1. 예제 1

    입력
    8
    10101101
    
    예상 출력
    1 3
    
  2. 예제 2

    입력
    5
    11111
    
    예상 출력
    0 0
    
  3. 예제 3

    입력
    4
    1101
    
    예상 출력
    2 1