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

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

빨강~ 빨강~ 파랑! 파랑! 달콤한 솜사탕!

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

요약
R과 B로 이루어진 문자열에서 각 구간 질의마다 a<b<c<d이고 a,b는 R, c,d는 B인 네 위치를 찾아 출력하거나 -1을 출력한다.
난이도

보통10점 중 6점

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

문제

알파벳 대문자로 이루어진 길이 NN의 문자열 S=S_0S_1S_2⋯S_N−1S=S\_0S\_1S\_2\cdots S\_{N-1}가 주어진다.

구간 \[l,r]\[l, r]이 주어질 때, 아래의 규칙을 만족하는 정수 a, b, c, da,\ b,\ c,\ d를 찾으면 당신은 달콤한 솜사탕을 얻을 수 있다.

  • S_a=S_b=S\_a=S\_b=R
  • S_c=S_d=S\_c=S\_d=B
  • l≤a<b<c<d≤rl \leq a \lt b \lt c \lt d \leq r

구간이 QQ번 주어질 때 달콤한 솜사탕을 얻을 수 있으면 그때의 a, b, c, da,\ b,\ c,\ d를 아무거나 하나 출력하고, 얻을 수 없으면 -1을 출력한다.

입력

첫째 줄에 두 정수 NN, QQ가 공백으로 구분되어 주어진다. (4≤N≤1 000 000; 1≤Q≤1 000 0004 \le N \le 1\ 000\ 000;\ 1 \le Q \le 1\ 000\ 000)

둘째 줄에 문자열 SS가 주어진다.

다음 QQ개의 줄에 두 정수 ll, rr이 공백으로 구분되어 주어진다. (0≤l≤r≤N−10 \le l \le r \le N-1)

출력

매 쿼리마다 달콤한 솜사탕을 얻을 수 있는 경우 가능한 a, b, c, da,\ b,\ c,\ d를 아무거나 하나 공백으로 구분하여 출력하고, 솜사탕을 얻을 수 없는 경우 -1을 출력한다.

예제1

  1. 예제 1

    입력
    10 4
    QRSRWBRBSB
    0 7
    1 6
    0 9
    3 9
    
    예상 출력
    1 3 5 7
    -1
    1 3 7 9
    3 6 7 9