QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 256 MB 満点: 100

#23865. 圈叉印章

統計

題目描述

JOI 君擁有圓圈印章、叉號印章和圈叉印章這 $3$ 種印章各 $0$ 個或更多個。這些印章可以在紙上印出圓圈或叉號標記。

使用圓圈印章可以印出 $1$ 個圓圈,使用叉號印章可以印出 $1$ 個叉號。使用圈叉印章可以橫向並排印出圓圈和叉號各 $1$ 個;透過改變印章的方向,既可以讓叉號印在圓圈的右邊,也可以讓圓圈印在叉號的右邊。

JOI 君將自己擁有的每個印章按適當的順序恰好各使用了 $1$ 次,在紙上橫向印出了一排圓圈和叉號。印出的圓圈和叉號序列用字串 $S$ 表示。$S$ 是由 O 和 X 組成的長度為 $N$ 的字串;若 $S_i = $ O,則表示 JOI 君印出的標記中從左數第 $i$ 個是圓圈,若 $S_i =$ X,則表示它是叉號($1 \le i \le N$)。

你不知道 JOI 君擁有的印章數量,但知道 JOI 君印出的圓圈和叉號序列。請根據印出的圓圈和叉號序列,求出 JOI 君可能擁有的圈叉印章數量的最大值。

約束條件

  • $1 \le N \le 100000 (= 10^5)$
  • $S$ 是長度為 $N$ 的字串。
  • $S$ 的每個字元均為 O 或 X。

輸入與輸出

輸入
輸入透過標準輸入以如下格式給出:
$N$
$S$

輸出
輸出 JOI 君可能擁有的圈叉印章數量的最大值。

輸入輸出樣例

樣例輸入 1

5
OXXOX

樣例輸出 1

2

JOI 君印出的標記從左起依次為:圓圈、叉號、叉號、圓圈、叉號。如果 JOI 君分別擁有圓圈印章、叉號印章、圈叉印章 $0, 1, 2$ 個,那麼按如下順序使用印章,就可以印出這樣的標記:

  • 使用第 $1$ 個圈叉印章,按順序印出圓圈和叉號。
  • 在它的右邊,使用第 $2$ 個圈叉印章,按順序印出叉號和圓圈。
  • 最後,在它的右邊,使用叉號印章印出叉號。

由於不可能擁有 $3$ 個或更多的圈叉印章,因此輸出 $2$。


樣例輸入 2

14
OXOXOXOXXOXOXO

樣例輸出 2

7

樣例輸入 3

10
OOOOOOOOOO

樣例輸出 3

0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.