Для решения первой подзадачи достаточно перебрать все пары подотрезков и проверить все указанные в задаче условия. Такое решение будет работать за $$$O(|s|^5)$$$.
Для решения второй подзадачи решение можно соптимизировать следующими способами:
Таким образом, для решения второй подзадачи сначала следует перебрать общую длину отрезков, затем левые концы обоих отрезков, а после этого проверить все указанные в задаче условия, считая сумму на каждом отрезке с помощью предподсчитанных $$$p_i = \sum_{j=1}^{j=i} s_i$$$. Такое решение будет работать за $$$O(|s|^3)$$$.
Для решения третьей подзадачи можно еще больше соптимизировать решение: перебрав общую длину отрезков $$$l$$$, сгруппируем все отрезки длиной $$$l$$$ по значению суммы на них. После этого, перебрав левую границу одного отрезка, мы можем легко узнать, есть ли еще один отрезок длиной $$$l$$$ с такой же суммой. Таким образом, получаем решение за $$$O(|s|^2)$$$.
Однако, чтобы решить задачу на полный балл, нужно использовать другое решение. Для начала посмотрим на символы по краям строки — $$$s_1$$$ и $$$s_n$$$. Если они одинаковые, то мы сразу получаем ответ на задачу: подотрезки $$$[1, n - 1]$$$ и $$$[2, n]$$$ удовлетворяют всем условиям задачи и имеют максимально возможную длину. Теперь рассмотрим случай, когда эти символы различны. Предположим, что $$$s_1 = 0$$$, а $$$s_n = 1$$$.
Найдем минимальный индекс $$$i$$$, такой, что $$$s_i = 1$$$, а также максимальный индекс $$$j$$$, такой, что $$$s_j = 0$$$ (то есть все символы перед $$$s_i$$$ равны $$$0$$$, а все символы после $$$s_j$$$ равны $$$1$$$). Утверждение: ответ на задачу — либо пара отрезков $$$[1, j - 1]$$$ и $$$[2, j]$$$, либо пара отрезков $$$[i, n - 1]$$$ и $$$[i + 1, n]$$$. Почему?
Во-первых, несложно заметить, что обе эти пары отрезков удовлетворяют всем условиям задачи. Во-вторых, предположим, что существует ответ лучше — пара отрезков $$$[l_1, r_1]$$$ и $$$[l_2, r_2]$$$ с большей длиной, удовлетворяющая условию. Тогда несложно доказать, что $$$l_1, l_2 \le i$$$, а также $$$r_1, r_2 \ge j$$$, что означает, что у обоих отрезков есть общая часть $$$[i, j]$$$. Оставшиеся же части отрезков состоят либо из одних нулей ($$$[l_1, i)$$$ и $$$[l_2, i)$$$), либо из одних единиц ($$$(j, r_1]$$$ и $$$(j, r_2]$$$). А из того, что и суммы, и длины у отрезков должны быть одинаковые, несложно доказать, что тогда $$$l_1 = l_2$$$ и $$$r_1 = r_2$$$, что противоречит условию о том, что отрезки должны быть разными.
Таким образом, оптимальный ответ — одна из двух пар отрезков $$$[1, j - 1]$$$ и $$$[2, j]$$$, или $$$[i, n - 1]$$$ и $$$[i + 1, n]$$$. Суммарная асимптотика решения — $$$O(|s|)$$$.