CF BUDDY
← Problems·

1290B · Irreducible Anagrams

1800 · binary search, constructive algorithms, data structures

Problem: Let's call two strings ss and tt anagrams of each other if it is possible to rearrange symbols in the string ss to get a string, equal to tt.

Let's consider two strings ss and tt which are anagrams of each other. We say that tt is a reducible anagram of ss if there exists an integer k2k \ge 2 and 2k2k non-empty strings s1,t1,s2,t2,,sk,tks_1, t_1, s_2, t_2, \dots, s_k, t_k that satisfy the following conditions:

  1. If we write the strings s1,s2,,sks_1, s_2, \dots, s_k in order, the resulting string will be equal to ss;
  2. If we write the strings t1,t2,,tkt_1, t_2, \dots, t_k in order, the resulting string will be equal to tt;
  3. For all integers ii between 11 and kk inclusive, sis_i and tit_i are anagrams of each other.

If such strings don't exist, then tt is said to be an irreducible anagram of ss. Note that these notions are only defined when ss and tt are anagrams of each other.

For example, consider the string s=s = "gamegame". Then the string t=t = "megamage" is a reducible anagram of ss, we may choose for example s1=s_1 = "game", s2=s_2 = "gam", s3=s_3 = "e" and t1=t_1 = "mega", t2=t_2 = "mag", t3=t_3 = "e":

On the other hand, we can prove that t=t = "memegaga" is an irreducible anagram of ss.

You will be given a string ss and qq queries, represented by two integers 1lrs1 \le l \le r \le |s| (where s|s| is equal to the length of the string ss). For each query, you should find if the substring of ss formed by characters from the ll-th to the rr-th has at least one irreducible anagram.

Input Format: The first line contains a string ss, consisting of lowercase English characters (1s21051 \le |s| \le 2 \cdot 10^5).

The second line contains a single integer qq (1q1051 \le q \le 10^5)  — the number of queries.

Each of the following qq lines contain two integers ll and rr (1lrs1 \le l \le r \le |s|), representing a query for the substring of ss formed by characters from the ll-th to the rr-th.

Output Format: For each query, print a single line containing "Yes" (without quotes) if the corresponding substring has at least one irreducible anagram, and a single line containing "No" (without quotes) otherwise.

Note: In the first sample, in the first and third queries, the substring is "a", which has itself as an irreducible anagram since two or more non-empty strings cannot be put together to obtain "a". On the other hand, in the second query, the substring is "aaa", which has no irreducible anagrams: its only anagram is itself, and we may choose s1=s_1 = "a", s2=s_2 = "aa", t1=t_1 = "a", t2=t_2 = "aa" to show that it is a reducible anagram.

In the second query of the second sample, the substring is "abb", which has, for example, "bba" as an irreducible anagram.

Sample Cases

Case 1

Input

aaaaa
3
1 1
2 4
5 5

Output

Yes
No
Yes

Case 2

Input

aabbbbbbc
6
1 2
2 4
2 2
1 9
5 7
3 5

Output

No
Yes
Yes
Yes
No
No

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