CF BUDDY
← Problems·

1917B · Erase First or Second Letter

1100 · brute force, combinatorics, data structures

Problem: You are given a string ss of length nn. Let's define two operations you can apply on the string:

  • remove the first character of the string;
  • remove the second character of the string.

Your task is to find the number of distinct non-empty strings that can be generated by applying the given operations on the initial string any number of times (possibly zero), in any order.

Input Format: Each test consists of multiple test cases. The first line contains a single integer tt (1t1041 \leq t \leq 10^4) — the number of test cases. The description of the test cases follows.

The first line of each test case contains nn (1n1051 \leq n \leq 10^5) — the length of the string.

The second line of each test case contains the string ss. It is guaranteed that the string only contains lowercase letters of the English alphabet.

It is guaranteed that the sum of nn over all test cases does not exceed 21052 \cdot 10^5.

Output Format: For each test case, output a single integer: the number of distinct non-empty strings you can get.

Note: In the first test case, we can get the following strings: aa, aaaa, aaaaaa, aaaaaaaa, aaaaaaaaaa.

In the third test case, for example, the word baba can be reached in the following way:

  • remove the first character of the current string ababaababa, getting babababa;
  • remove the second character of the current string babababa, getting bbabba;
  • remove the second character of the current string bbabba, getting baba.

Sample Cases

Case 1

Input

5
5
aaaaa
1
z
5
ababa
14
bcdaaaabcdaaaa
20
abcdefghijklmnopqrst

Output

5
1
9
50
210

Similar problems

00:00:00
Loading editor…
Welcome! I'm your coding tutor for this problem. Use the chips below to reveal stored hints or get AI feedback on your code. I'll guide you step by step — never giving away the solution.

Sign in to unlock AI tutor feedback