atcoder#ABC300F. [ABC300F] More Holidays

[ABC300F] More Holidays

配点 : 500500

問題文

ox からなる長さ NN の文字列 SS と、整数 M,KM,K が与えられます。 SS には少なくとも 11 つの x が含まれることが保証されます。

SSMM 個連結して得られる長さ NMNM の文字列を TT とします。 TT に含まれる x のうち丁度 KK 個を選んで o に変えることを考えます。 あなたの目標は、変更後の TTo のみからなるできるだけ長い連続部分文字列が含まれるようにすることです。 o のみからなる連続部分文字列の長さとして達成可能な最大値を求めてください。

制約

  • N,M,KN,M,K は整数
  • 1N3×1051 \le N \le 3 \times 10^5
  • 1M1091 \le M \le 10^9
  • xx を文字列 TT に含まれる x の総数としたとき、 1Kx1 \le K \le x
  • SSox からなる長さ NN の文字列
  • SS には少なくとも 11 つの x が含まれる

入力

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

NN MM KK

SS

出力

答えを整数として出力せよ。

10 1 2
ooxxooooox
9

S=S= ooxxoooooxT=T= ooxxooooox です。 33 文字目と 44 文字目の xo に変更することにより、変更後の T=T= ooooooooox となります。 このとき o のみからなる長さ 99 の連続部分文字列が得られ、これが達成可能な最大値です。

5 3 4
oxxox
8

S=S= oxxoxT=T= oxxoxoxxoxoxxox です。 5,7,8,105,7,8,10 文字目の xo に変更することにより、変更後の T=T= oxxooooooooxxox となります。 このとき o のみからなる長さ 88 の連続部分文字列が得られ、これが達成可能な最大値です。

30 1000000000 9982443530
oxoxooxoxoxooxoxooxxxoxxxooxox
19964887064