atcoder#ABC299C. [ABC299C] Dango

[ABC299C] Dango

题目描述

正の整数 L L に対して、 レベル L L のダンゴ文字列とは、以下の条件を満たす文字列です。

  • o- からなる長さ L+1 L+1 の文字列である。
  • 先頭の文字と末尾の文字のうちちょうど一方が - であり、そのほかの L L 文字はすべて o である。

例えば、ooo- はレベル 3 3 のダンゴ文字列ですが、-ooo-ooo-oo- などはダンゴ文字列ではありません(より正確には、どのような正の整数 L L に対してもレベル L L のダンゴ文字列ではありません)。

2 2 種類の文字 o - からなる、長さ N N の文字列 S S が与えられます。 次の条件を満たすような正整数 X X のうち、最大のものを求めてください。

  • S S の連続する部分文字列であって、レベル X X のダンゴ文字列であるものが存在する。

ただし、そのような整数が存在しない場合、-1 と出力してください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N S S

输出格式

S S にレベル X X のダンゴ文字列が含まれるような最大の X X の値を 1 1 行で出力せよ。 そのような値が存在しない場合、-1 を出力せよ。

题目大意

对于一个正整数 LL,我们称一个 LL 阶 Dango 是一个满足以下条件的字符串:

  • 它是一个仅由字符 o- 组成的长度为 L+1L+1 的字符串。
  • 它的第一个和最后一个字符中有且仅有一个是 -,其它的 LL 个字符全是 o

比如说,ooo- 就是一个 33 阶的 Dango 字符串,而 -ooo-ooo-oo- 则不是任何一个正整数阶的 Dango 字符串。

给你一个长为 NN 的只由 o- 组成的字符串 SS,问在它的所有子串中最长的 Dango 字符串是几阶的。特别地,如果 SS 的所有子串都不是 Dango 字符串,那就输出 -1

1N2×1051\le N\le 2\times 10^5

10
o-oooo---o
4
1
-
-1
30
-o-o-oooo-oo-o-ooooooo--oooo-o
7

提示

制約

  • 1 N 2×105 1\leq\ N\leq\ 2\times10^5
  • S S o - からなる長さ N N の文字列

Sample Explanation 1

たとえば、S S 3 3 文字目から 7 7 文字目までに対応する部分文字列 oooo- は、レベル 4 4 のダンゴ文字列です。 S S の部分文字列であってレベル 5 5 以上のダンゴ文字列であるようなものは存在しないため、4 4 と出力してください。

Sample Explanation 2

S S の連続する部分文字列は空文字列と -2 2 種類だけです。 これらはダンゴ文字列ではないため、-1 と出力してください。