编程题
### 问题描述 六一儿童节即将到来。 为庆祝这个充满欢乐的节日,蓝桥学院邀请了两位优秀学员小蓝和小桥共同参与一项名为的 “气球大比拼” 活动,活动规则如下: 学院准备了 $n$ 个气球,每个气球有一个颜色,用数字 $a_i$ 表示。这些气球整齐地排成一排,排头的第一个气球和排尾的最后一个气球都是可以取的。小蓝和小桥需要轮流从气球排的左右两端取走一个气球,小蓝先开始。如果其中一人取走的气球的颜色是之前没有取过的,那么他就能得到 $1$ 分。当所有气球都被取走后,游戏结束。 小蓝和小桥都希望最大化各自的得分。假设他们都足够聪明,且都会采用最优策略来取气球。请问,在游戏结束后,小蓝和小桥分别能获得多少分? ### 输入格式 第一行包含一个整数 $n$($1\leq n \leq 3000$),表示气球的数量。 第二行包含 $n$ 个整数 $a_1, a_2, ..., a_n$($1\leq a_i \leq n$),表示每个气球的颜色。 ### 输出格式 输出一行,包含两个整数,分别表示小蓝最终获得的分数、小桥最终获得的分数。如果 $1$ 分也未获得,则对应的分数为 $0$。 ### 样例输入 ``` 4 1 1 2 1 ``` ### 样例输出 ``` 2 0 ``` ### 样例说明 小蓝可以先取走最左端的气球,获得 $1$ 分。取走之后,剩余的气球颜色序列为 $[1, 2, 1]$。 此时,无论小桥取最左端的气球,还是取最右端的气球,都无法获得分数(因为颜色都会重复)。 当小桥取走最左端或最右端的气球后,剩余的气球颜色序列为 $[2,1]$ 或 $[1,2]$。小蓝可以根据情况取走颜色为 $2$ 的气球,获得 $1$ 分,并留下一个颜色为 $1$ 的气球。 小桥取走最后一个气球,无法获得分数。 最终小蓝获得 $2$ 分,小桥获得 $0$ 分。
查看答案
赣ICP备20007335号-2