힝스티비와 쿼리

월간 향유회 2025. 08. B번 BOJ 34243번
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB170533930.000%

문제

덧셈, 뺄셈, XOR을 공부하던 나도리는 각 연산자를 나열하다가 표정 문자열이라는 것을 만들었다. 표정 문자열은 +, -, ^ 으로만 이루어진 문자열이다.+^+은 뭔가 신나 보이는 표정이고, -^-은 뭔가 힝스러운 표정이다.

표정 문자열의 흥미도는 문자열에 존재하는 아래 부분 문자열의 개수에 따라 정해진다.

  • +^+: $1$점
  • -^-: $-1$점

표정 문자열을 만든 후, 월간 향유회 멤버들은 표정 문자열을 이용하여 매일 아침에 운세를 보기 시작했다.

$1 \leq \ell \leq r \leq \left\vert S \right\vert$을 만족하는 두 정수 $\ell$, $r$을 고르면, 나도리는 표정 문자열 $S[\ell:r]$의 흥미도를 알려 준다. $S[\ell:r]$은 $S$의 $\ell$번째 문자부터 $r$번째 문자까지로 구성된 부분 문자열이다.

힝스한 표정이 너무 많으면 아침부터 기분도 힝스해지기 때문에 나도리는 기특한 생각을 하나 해 냈다.

$S[\ell:r]$에서 최대 하나의 문자를 지운 상태에서 흥미도의 최대를 알려 주자!

$Q$개의 운세 요청이 들어왔을 때 나도리가 적절한 운세를 볼 수 있게 해 주자.

입력

첫째 줄에 표정 문자열 $S$가 주어진다. ($1 \leq \left\vert S \right\vert \leq 300\,000$)

둘째 줄에 쿼리의 개수 $Q$가 주어진다. ($1 \leq Q \leq 300\,000$)

셋째 줄부터 $Q$줄에 걸쳐 구간을 나타내는 두 정수 $\ell$, $r$이 공백으로 구분되어 주어진다. ($1 \leq \ell \leq r \leq \left\vert S \right\vert$)

출력

쿼리마다 $S[\ell:r]$에서 최대 하나의 문자를 지운 상태에서 흥미도의 최댓값을 한 줄에 출력한다.

예제 입력 1

+-^+-^++
3
1 8
2 5
4 7

예제 출력 1

1
0
1

출처

Contest > BOJ User Contest > 월간 향유회 > 월간 향유회 2025. 08. B번

  • 문제를 만든 사람: swoon
  • 문제를 검수한 사람: chogahui05, kiwiyou, pyb1031, utilforever