No.3061 Cut and Maximums
レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限
: 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 11
作問者 : 👑
tute7627
/ テスター :
👑
rin204
👑
SPD_9X2
タグ : / 解いたユーザー数 11
作問者 : 👑


問題文最終更新日: 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$ 回以上の任意の回数行うことができます。
- グラフ $G$ の辺を $0$ 辺以上選び、削除する。
- グラフ $G$ の連結成分それぞれについて、以下の処理を行う。
- 連結成分内で頂点番号が最大であるような頂点を黒く塗る。その頂点が既に黒く塗られている場合は何もしない。
- グラフ $G$ の削除した辺を元に戻す。
B
と W
からなる長さ $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$ は
B
とW
からなる長さ $N$ の文字列である。
出力
目標を達成できる場合は操作回数の最小値を、達成できない場合は -1
を出力してください。
最後に改行してください。
サンプル
サンプル1
入力
4 2 4 1 3 BBWB
出力
2
以下の手順で目標を達成することができます。
- 辺 $(2,4)$ と 辺 $(3,2)$ を削除する。頂点 $2$ と 頂点 $1,3,4$ がそれぞれ連結成分をなすため、頂点 $2$ と頂点 $4$ を黒く塗る。
- 辺 $(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もしくは右上の雲マークをクリックしてアカウントを作成してください。