编程题
### 问题描述
小蓝是一个热衷于解决难题的年轻人。最近,他沉迷于一款跳格子的游戏。游戏总共有 $n$ 格,每个格子都有一个分数 $a_i$,小蓝一开始在 $1$ 号位置。每当他跳到一个格子上,就可以获得这个格子的分数。
然而,小蓝在跳格子的过程中有一些限制:他每次只能选择向前跳动 $X$ 格或者 $Y$ 格,或者 $Z$ 格。此外,小蓝可以随时选择游戏停止。小蓝想知道,通过巧妙选择跳动的格子,他最后最多可以获得多少分数。
### 输入格式
第一行包含一个整数 $n$,表示游戏格子的总数。
第二行包含三个整数 $X$、$Y$ 和 $Z$,表示小蓝每次可以选择跳动的格子数。
第三行包含 $n$ 个整数,表示每个格子的分数 $a_1, a_2, \ldots, a_n$。
### 输出格式
输出一个整数,表示通过巧妙选择跳动的格子,小蓝最后最多可以获得的分数。
### 样例输入
```
5
1 2 3
3 -3 4 -10 2
```
### 样例输出
```
9
```
### 说明
小蓝的路径:$1 \to 3 \to 5$。
### 评测数据范围
$1 \le X,Y,Z,n \le 10^5,-10^9 \le a_i \le 10^9$。