Олимпиадный тренинг

Задача . B. Неподстрочные подпоследовательности


У Hr0d1y есть \(q\) запросов на бинарной строке \(s\) длины \(n\). Бинарная строка это строка, содержащая только символы «0» и «1».

Запрос задается парой целых чисел \(l_i\), \(r_i\) \((1 \leq l_i \lt r_i \leq n)\).

Для каждого запроса ему необходимо определить, есть ли хорошая подпоследовательность в строке \(s\), которая равна подстроке \(s[l_i\ldots r_i]\).

  • Подстрока \(s[i\ldots j]\) строки \(s\) — это строка из символов \(s_i s_{i+1} \ldots s_j\).
  • Строка \(a\) называются подпоследовательностью строки \(b\), если \(a\) может быть получена из \(b\) удалением некоторых символов, не меняя порядка оставшихся.
  • Подпоследовательность называется хорошей, если она не последовательная и имеет длину \(\ge 2\). Например, если \(s\) равна «1100110», то подпоследовательности \(s_1s_2s_4\)1100110») и \(s_1s_5s_7\)1100110») являются хорошими, а \(s_1s_2s_3\)1100110») не является.

Можете ли вы помочь Hr0d1y ответить на каждый запрос?

Входные данные

В первой строке записано одно целое число \(t\) (\(1\leq t \leq 100\)) — количество наборов входных данных.

Далее идут описания наборов входных данных.

В первой строке записаны два целых числа \(n\) (\(2 \leq n \leq 100\)) и \(q\) (\(1\leq q \leq 100\)) — длина строки и число запросов.

Во второй строке записана строка \(s\).

В \(i\)-й из следующих \(q\) строк записаны два целых числа \(l_i\) и \(r_i\) (\(1 \leq l_i \lt r_i \leq n\)).

Выходные данные

Для каждого набора входных данных выведите \(q\) строк. В \(i\)-й строке ответа на каждый набор входных данных должно быть записано «YES», если есть хорошая подпоследовательность, равная подстроке \(s[l_i...r_i]\), и «NO» иначе.

Вы можете выводить каждый символ в любом регистре (верхнем или нижнем).

Примечание

В первом наборе входных данных:

  • \(s[2\ldots 4] = \) «010». В этом случае \(s_1s_3s_5\)001000») и \(s_2s_3s_6\)001000») являются подходящими хорошими подпоследовательностями, а \(s_2s_3s_4\)001000») — нет.
  • \(s[1\ldots 3] = \) «001». Нет подходящей хорошей подпоследовательности.
  • \(s[3\ldots 5] = \) «100». В этом случае \(s_3s_5s_6\)001000») — это подходящая хорошая подпоследовательность.

Примеры
Входные данныеВыходные данные
1 2
6 3
001000
2 4
1 3
3 5
4 2
1111
1 4
2 3
YES
NO
YES
NO
YES

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя