#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef long double LD; typedef vector VI; typedef pair PII; const LD eps=1e-9; const LD PI=atan2((LD)0,(LD)-1); const LL MOD=1000000007; const int INF=1<<30; const int ARR_INF=1<<6; const int MAXN=100005; const int Day[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; bool Good(LL num) { LL tnum=num; int t[11]; for(int i=1;i<=5;i++) { t[i]=tnum%10; tnum/=10; } bool allsame=true; for(int i=2;i<=5;i++) { if(t[i]!=t[i-1]) { allsame=false; break; } } if(allsame) return true; if(abs(t[2]-t[1])==1) { bool s=true; for(int i=3;i<=5;i++) { if(t[i]-t[i-1]!=t[i-1]-t[i-2]) { s=false; break; } } if(s) return true; } int d=num%100; int m=(num/100)%100; int y=(num/10000)%10000; if(y>=1980&&y<=2016&&m>=1&&m<=12&&d>=1&&d<=Day[m]) { if(m==2&&d==29) { if(y%4) return false; } return true; } return false; } int main() { int T; scanf("%d",&T); while(T--) { int n; scanf("%d",&n); LL a,b; scanf("%I64d%I64d",&a,&b); LL ans=0; LL num; while(n--) { scanf("%I64d",&num); if(Good(num)) ans+=a; else ans+=b; } printf("%I64d\n",ans); } return 0; }