004 - 賢者の円卓
時間制限 2 秒 / メモリ制限 256 MB / 得点 5 / x 1 /
$N$ 個の席が円状に並んでいる円卓に、$N$ 人の賢者が座ろうとしている。それぞれの賢者は、利き手で箸を持ち食事をとる。このとき、以下のようなことが起こる。
- 賢者$i$が右利きの場合、その右隣に左利きの賢者が座ると不満度 $w_i$が発生し、右利きの賢者が座ると不満度は発生しない。
- 賢者$i$が左利きの場合、その左隣に右利きの賢者が座ると不満度 $w_i$が発生し、左利きの賢者が座ると不満度は発生しない。
あなたは席順をうまく調整して、発生する不満度の総和を最小化したいと考えている。
賢者の人数、それぞれの利き手と不満度を入力し、不満度の総和の最小値を出力するプログラムを作成せよ。
入力
入力は以下の形式で与えられる。
$N$ $a_1$ $a_2$ $...$ $a_N$ $w_1$ $w_2$ $...$ $w_N$
1行目に賢者の人数 $N$ ($3 \leq N \leq 10$)が与えられる。2行目に各賢者の利き手を表す整数 $a_i$ (0 または 1)が与えられる。$a_i$が 0 のとき賢者 $i$ は右利き、1 のとき左利きであることを表す。3行目に各賢者の不満度を表す整数 $w_i$ ($1 \leq w_i \leq 1000$)が与えられる。
出力
不満度の総和の最小値を1行に出力する。
入出力例
入力例1
5 1 0 0 1 0 2 3 5 1 2
出力例1
3
入力例2
3 0 0 0 1 2 3
出力例2
0