/ WHOJ / 题库 /

平衡子串

平衡子串

题目描述

给您一个字符串 \(s\),由 \(n\) 个字母组成,每个字母都是“ \(a\) ”或“ \(b\) ”。字符串中的字母从 \(1\) 到 \(n\) 进行编号。

\(s[l,r]\) 是从字符串的索引 \(l\) 到 \(r\) 的连续字母子字符串。

如果字符串中字母“ \(a\) ”的数量等于字母“ \(b\) ”的数量,则称为平衡字符串。例如,字符串“ \(baba\) ”和“ \(aabbab\) ”是平衡的,而字符串“ \(aaab\)”和“ \(b\) ”不是平衡的。

查找字符串 \(s\) 的任何非空平衡子字符串 \(s[l,r]\)。打印其 \(l\) 和 \(r(1≤l≤r≤n)\) 。如果没有这样的子字符串,则打印“\(−1\) \(−1\)”。

格式

输入格式

第一行包含一个整数 \(t(1≤t≤1000)\),表示测试组数。

对于每组测试数据:

第一行包含一个整数 \(n(1≤n≤200)\),字符串的长度。

第二行包含一个字符串 \(s\),由 \(n\) 个字母组成,每个字母是“ \(a\) ”或“ \(b\) ”。

输出格式

对于每组数据,打印两个整数。

如果存在一个非空的平衡子串 \(s[l,r]\),则打印 \(l~r(1≤L≤R≤n)\)。否则,请打印“ \(−1~−1\)”。

样例1

样例输入1

3
1
a
6
abbaba
9
babbabbaa

样例输出1

-1 -1
1 6
2 9

限制

时间:\(1s\) 空间:\(64M\)

对于 \(30\%\) 的数据:\(1≤T≤10\);

对于 \(100\%\) 的数据:\(1≤T≤1000\);

来源

地址:\(zloj,J2021\)域
作者:\(jialiang2509\)