QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 256 MB Puntuación total: 100

#20747. 칠할 시간이 없다

Estadísticas

Bessie는 최근 그림 도구 세트를 받았으며, 목초지 한쪽 끝에 있는 긴 울타리에 색을 칠하려 한다. 울타리는 연속된 $N$개의 길이 1미터인 구간으로 이루어져 있다($1\le N\le 10^5$). Bessie는 서로 다른 26가지 색을 가지고 있으며, 색이 어두워지는 순서대로 'A'부터 'Z'까지의 문자로 표시한다('A'는 매우 밝은 색이고 'Z'는 매우 어두운 색이다). 따라서 각 울타리 구간에 칠하려는 색을, 각 문자가 알파벳인 길이 $N$의 문자열로 나타낼 수 있다.

처음에는 모든 울타리 구간이 칠해져 있지 않다. Bessie는 더 어두운 색 위에 더 밝은 색을 칠하지 않는 한, 임의의 연속된 구간을 한 번의 붓질로 하나의 색으로 칠할 수 있다(더 밝은 색 위에는 더 어두운 색만 칠할 수 있다).

예를 들어 처음에 칠해져 있지 않은 길이 네인 구간은 다음과 같이 칠할 수 있다.

.... -> BBB. -> BBLL -> BQQL

시간이 부족해진 Bessie는 울타리의 어떤 연속된 구간을 칠하지 않고 남겨야 할 수도 있다고 생각한다! 현재 $Q$개의 후보 구간($1\le Q\le 10^5$)을 고려하고 있다. 각각은 $1 \leq a \leq b \leq N$을 만족하는 두 정수 $(a,b)$로 나타내며, 칠하지 않고 남길 구간 $a \ldots b$의 양 끝 인덱스를 뜻한다.

각 후보 구간에 대해, 구간 안의 모든 울타리 구간을 칠하지 않은 상태로 남기면서 구간 밖의 각 울타리 구간을 원하는 색으로 칠하는 데 필요한 최소 붓질 횟수는 얼마인가? 이 과정에서 Bessie는 실제로 색을 칠하지 않으므로 각 후보 구간의 답은 독립적이다.

입력

첫째 줄에 $N$과 $Q$가 주어진다.

다음 줄에 각 울타리 구간의 원하는 색을 나타내는 길이 $N$의 문자열이 주어진다.

다음 $Q$개의 줄에는 각각 공백으로 구분된 두 정수 $a$와 $b$가 주어지며, 칠하지 않을 수도 있는 후보 구간을 나타낸다.

출력

$Q$개의 후보 각각에 대해 답을 새로운 줄에 출력한다.

예제

입력 1

8 2
ABBAABCB
3 6
1 4

출력 1

4
3

참고

이 예제에서 원하는 무늬가 $\texttt{BAAB}$인 부분 구간을 제외하면 칠하는 데 네 번의 붓질이 필요하지만, $\texttt{ABBA}$를 제외하면 세 번만 필요하다.

.... -> AA.. -> ABBB -> ABCB

서브태스크

  • 테스트 케이스 1–4는 $N,Q\le 100$을 만족한다.
  • 테스트 케이스 5–7은 $N,Q\le 5000$을 만족한다.
  • 테스트 케이스 8–13에는 추가 제한이 없다.

출제자: Andi Qu 및 Brian Dean

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.