問題一覧 > 通常問題

No.3061 Cut and Maximums

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 11
作問者 : 👑 tute7627 / テスター : 👑 rin204 👑 SPD_9X2
1 ProblemId : 11171 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2025-03-12 02:46:31

問題文

$N$ 頂点 $N$ 辺の無向グラフ $G$ があります。

$G$ の辺は $(1,2,\dots,N)$ の順列 $P$ によって与えられます。 $1 \le i \le N$ について、$i$ 番目の辺は頂点 $P_i$ と 頂点 $P_{i+1}$ を結んでいます。 ここで、頂点 $P_{N+1}$ は頂点 $P_1$ を指すものとします。

初め、グラフ $G$ のすべての頂点は白く塗られています。

あなたは以下の一連の操作を $0$ 回以上の任意の回数行うことができます。

  1. グラフ $G$ の辺を $0$ 辺以上選び、削除する。
  2. グラフ $G$ の連結成分それぞれについて、以下の処理を行う。
    • 連結成分内で頂点番号が最大であるような頂点を黒く塗る。その頂点が既に黒く塗られている場合は何もしない。
  3. グラフ $G$ の削除した辺を元に戻す。

BW からなる長さ $N$ の文字列 $S$ が与えられます。$S$ の $i$ 文字目が B である場合は頂点 $i$ を黒く、そうでなければ頂点 $i$ を白く塗りたいです。

そのように操作を行うことができるか判定し、可能な場合は必要な操作回数の最小値を求めてください。

入力

$N$
$P_1\ P_2\ \dots \ P_N$
$S$

  • $2 \le N \le 3 \times 10^5$
  • $P$ は $(1,2,\dots,N)$ の順列である。
  • $S$ は BW からなる長さ $N$ の文字列である。

出力

目標を達成できる場合は操作回数の最小値を、達成できない場合は -1 を出力してください。 最後に改行してください。

サンプル

サンプル1
入力
4
2 4 1 3
BBWB
出力
2

以下の手順で目標を達成することができます。

  1. 辺 $(2,4)$ と 辺 $(3,2)$ を削除する。頂点 $2$ と 頂点 $1,3,4$ がそれぞれ連結成分をなすため、頂点 $2$ と頂点 $4$ を黒く塗る。
  2. 辺 $(4,1)$ と 辺 $(1,3)$ を削除する。頂点 $1$ と 頂点 $2,3,4$ がそれぞれ連結成分をなすため、頂点 $1$ を黒く塗る。

サンプル2
入力
4
2 4 1 3
BBBB
出力
1

すべての辺を削除すればよいです。

サンプル3
入力
4
2 4 1 3
BBBW
出力
-1

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。