Universal Cup Judging System

Universal Cup

Süre Sınırı: 2.0 s Bellek Sınırı: 1024 MB Toplam puan: 100 Hack'lenebilir ✓
İstatistikler

알파벳 소문자로 이루어진 길이 $k$인 문자열 $t$가 다음 조건을 모두 만족할 때 그리고 그때에만 CCPC(Character-Character-Palindrome-Character) 문자열이라고 부릅니다:

  • $k \ge 4$;
  • $t_1 = t_2 = t_k$;
  • $t_3 t_4 \dots t_{k-1}$은 팰린드롬이다.

길이 $m$인 문자열이 팰린드롬이라는 것은 모든 $1 \le i \le m$에 대해 문자열의 $i$번째 문자와 $(m - i + 1)$번째 문자가 같다는 것을 의미합니다.

예를 들어, ccpc, ppap, zzzz, aabcddcba는 CCPC 문자열이지만, jinan, aaa, oovoo는 아닙니다.

문자열 $s$의 부분 문자열은 $1 \le l \le r \le |s|$를 만족하는 정수 쌍 $(l, r)$로 나타낼 수 있으며, 이는 문자열 $s_l s_{l+1} \dots s_r$에 대응합니다. 두 부분 문자열은 선택된 인덱스 쌍 $(l, r)$이 다를 때 그리고 그때에만 서로 다른 것으로 간주합니다. 알파벳 소문자로 이루어진 문자열 $s$가 주어질 때, 먼저 $s$에 있는 CCPC 부분 문자열의 개수를 구하세요. 그 후 $s$의 왼쪽 또는 오른쪽 끝에 알파벳 소문자를 하나 삽입하는 연산이 $n$번 수행됩니다. 각 삽입 연산 후에 $s$에 있는 CCPC 부분 문자열의 개수를 구해야 합니다.

입력

첫 번째 줄에 테스트 케이스의 개수를 나타내는 정수 $T$ ($1 \le T \le 100$)가 주어집니다.

각 테스트 케이스에 대해, 첫 번째 줄에 초기 문자열을 나타내는 알파벳 소문자로 이루어진 문자열 $s$ ($4 \le |s| \le 5 \times 10^5$)가 주어집니다.

두 번째 줄에 연산의 횟수를 나타내는 정수 $n$ ($1 \le n \le 5 \times 10^5$)이 주어집니다.

세 번째 줄에 시간 순서대로 연산을 나타내는 길이 $2$인 $n$개의 문자열 $c_1, c_2, \dots, c_n$이 공백으로 구분되어 주어집니다. 각 문자열 $c_i$의 첫 번째 문자는 L 또는 R로 각각 $s$의 왼쪽 또는 오른쪽에 삽입함을 나타내며, 두 번째 문자는 삽입할 알파벳 소문자를 나타냅니다.

모든 테스트 케이스에서 $|s|$의 합과 $n$의 합은 모두 $5 \times 10^5$을 초과하지 않음이 보장됩니다.

출력

각 테스트 케이스마다 공백으로 구분된 $n + 1$개의 정수를 한 줄에 출력합니다. 첫 번째 정수는 초기 문자열에 대한 답을 나타내고, $(i + 1)$번째 정수 ($1 \le i \le n$)는 처음 $i$번의 연산 후의 답을 나타냅니다.

예제

입력

2
iloveccpc
6
Rj Ri Ln La Ln Ln
cpcpccp
9
Lc Lc Rp Rc Lc Lc Rp Rp Rc

출력

1 1 1 1 1 1 2
0 2 3 3 4 5 7 8 8 9

노트

두 번째 테스트 케이스에서 모든 연산이 끝난 후 $s$는 cccccpcpccppcppc가 됩니다. 이 문자열의 CCPC 부분 문자열은 다음과 같습니다: $s_{1\dots4} = \text{cccc}$, $s_{1\dots5} = \text{ccccc}$, $s_{2\dots5} = \text{cccc}$, $s_{3\dots10} = \text{cccpcpcc}$, $s_{4\dots7} = \text{ccpc}$, $s_{4\dots9} = \text{ccpcpc}$, $s_{9\dots13} = \text{ccppc}$, $s_{9\dots16} = \text{ccppcppc}$, $s_{11\dots14} = \text{ppcp}$.

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.