Odd and Even Judgment
题号:NC15864
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

    给出一组长度为n的序列,要求进行“消除操作”:即每次将两个相邻的数变成一个数,旁边的数向中间靠拢。

    具体“消除操作”有如下两种:

         1)如果两个数的和为奇数,那么就变成x

         2)如果两个数的和为偶数,那么就变成y

    n-1次“消除操作”之后,剩下的那个数最大为多少?

输入描述:

第一行输入一个正整数T(1<=T<=1000),表示数据组数;
对于每一组数据,第一行输入三个整数n,x,y(1<n、x、y<1e5);
第二行输入n个整数a1,a2,…,an(1<=ai<=1e5);

输出描述:

对于每组数据,输出一个最大值。
示例1

输入

复制
2
6 1 2
1 2 3 4 5 6
6 4 2
1 2 3 4 5 6

输出

复制
1
4