Skip to content

マルバツスタンプ (Circle Cross Stamps)

Unrated
日本語

Language

Contribute a translation
Time limit
2000 ms
Memory limit
256 MB
Submissions
0
Correct
0
Solved by
0
AC rate
—

Statement

JOI 君はマルスタンプ,バツスタンプ,マルバツスタンプの3種類のスタンプをそれぞれ \(0\) 個以上持っている.これらはマルやバツのマークを紙に印字することができるスタンプである.

マルスタンプを使うとマルが \(1\) つ印字され,バツスタンプを使うとバツが \(1\) つ印字される.マルバツスタンプを使うとマルとバツが横一列に \(1\) つずつ印字され,スタンプの向きを変えることで,マルの右にバツが来るようにも,バツの右にマルが来るようにも印字できる.

JOI 君は,持っているスタンプをそれぞれちょうど \(1\) 回ずつ適当な順番で使い,紙に横一列にマルとバツを印字した.印字されたマルとバツの列は文字列 \(S\) で表される.\(S\) は O と X から構成された長さ \(N\) の文字列であり,\(S_i = \) O ならば JOI 君が印字したマークのうち左から \(i\) 番目のものがマルであることを表し,\(S_i =\) X ならばそれがバツであることを表す (\(1 ≦ i ≦ N\)).

あなたは,JOI 君が持っているスタンプの個数は分からないが,JOI 君が印字したマルとバツの列は知っている.印字されたマルとバツの列から,JOI 君が持っているマルバツスタンプの個数としてあり得るもののうち最大値を求めよ.

Constraints

  • \(1 ≦ N ≦ 100000 (= 10^5)\)
  • \(S\) は長さ \(N\) の文字列である.
  • \(S\) の各文字は O か X である.

Input

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

\(N\)
\(S\)

Output

JOI 君が持っているマルバツスタンプの個数としてあり得るもののうち最大値を出力せよ.

Examples

Sample input 1
5
OXXOX
Sample output 1
2

JOI 君が印字したマークは,左から順に,マル,バツ,バツ,マル,バツである.JOI 君がマルスタンプ,バツスタンプ,マルバツスタンプをそれぞれ \(0, 1, 2\) 個持っているとすると,以下の順番でスタンプを使えば,そのようにマークを印字することができる.

  • \(1\) つ目のマルバツスタンプを使ってマルとバツをこの順に印字する.
  • この右に,\(2\) つ目のマルバツスタンプを使ってバツとマルをこの順に印字する.
  • 最後に,この右に,バツスタンプを使ってバツを印字する.

マルバツスタンプを \(3\) 個以上持っているケースは考えられないので,\(2\) を出力する.

Sample input 2
14
OXOXOXOXXOXOXO
Sample output 2
7
Sample input 3
10
OOOOOOOOOO
Sample output 3
0

Notes

Tags

No tags yet

Source