编程题
### 题目描述
给定 $n$ 个小球,每个小球包含颜色、价值和高度这三种属性。我们可以使用数组 $a$ 来描述每个小球,其中 $a_i = (c_i, v_i, h_i)$ 表示第 $i$ 个小球的颜色、价值和高度。数组 $a$ 的长度为 $n$。
现在,你需要从数组 $a$ 中选择一个子序列 $a'$,使得 $a’$ 中的小球按照它们在数组 $a$ 中出现的顺序排列,并且满足以下条件:
- $a'$ 中相邻小球的颜色不同,即 $a_i'$ 的颜色为 $0$ 当且仅当 $a'_{i-1}$ 的颜色为 $1$,反之亦然。
- $a'$ 中相邻小球的高度单调不递减。
请你找到满足这些条件的子序列 $a'$,使得其包含的小球的价值之和最大,并输出这个最大价值。
### 输入格式
输入共四行。
第一行输入一个整数 $n$( $1 \leq n \leq 2 \times 10^5$),表示小球数量。
第二行输入 $n$ 个整数 $c_1,c_2,\cdots,c_n$( $0 \leq c_i \leq 1$),分别表示每个小球的颜色。
第三行输入 $n$ 个整数 $v_1,v_2,\cdots,v_n$( $-10^9 \leq v_i \leq 10^9$),分别表示每个小球的价值。
第四行输入 $n$ 个整数 $h_1,h_2,\cdots,h_n$( $1 \leq h_i \leq 2\times 10^5$),分别表示每个小球的高度。
### 输出格式
输出仅一行,包含一个整数,表示最大价值。
### 样例输入
```
5
0 1 0 1 0
3 -2 3 4 5
1 2 3 4 5
```
### 样例输出
```
13
```