/* *********************************************** Author :kuangbin Created Time :2016/1/23 18:58:47 File Name :F:\ACM\2016ACM\BestCoder\BC69\A.cpp ************************************************ */ #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool isleap(int n) { if (n%400 == 0 || (n%100 != 0 && n%4 == 0))return true; else return false; } int days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; bool check(int y,int m,int d) { if(! (y >= 1980 && y <= 2016))return false; if (! (m >= 1 && m <= 12))return false; if (d <= 0)return false; int tmp = days[m]; if(m == 2 && isleap(y))tmp++; if(d > tmp)return false; return true; } bool check(int n) { int a[5]; for(int i = 0;i < 5;i++) { a[i] = n%10; n /= 10; } bool flag = true; for(int i = 1;i < 5;i++) if(a[i] != a[i-1]) flag = false; if(flag)return true; flag = true; for(int i = 1;i < 5;i++) if(a[i] != a[i-1]+1) flag = false; if(flag)return true; flag = true; for(int i = 1;i < 5;i++) if(a[i] != a[i-1]-1) flag = false; if(flag)return true; return false; } int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int T; int n; int a,b; scanf("%d",&T); while(T--) { scanf("%d",&n); scanf("%d%d",&a,&b); long long ans; long long tmp ; ans = 0; while(n--) { scanf("%I64d",&tmp); if(check((int)(tmp%100000)) || check((int)(tmp/10000)%10000,(int)(tmp/100)%100,(int)(tmp%100))) { ans += a; } else ans += b; } printf("%I64d\n",ans); } return 0; }