#include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f #define mod 9999991 using namespace std; void fre(){freopen("d://input.txt","r",stdin);freopen("d://output.txt","w",stdout);} #define MS(x,y) memset(x,y,sizeof(x)) #define rep(i,x,y) for (int i=x;i<=y;i++) typedef __int64 LL; const int N=100005; int n,a,b; char phone[N][12]; int judge(char* s){ int data[14]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int len=strlen(s)-1,flag=1; int i; for(i=len;i>len-4;i--){ if(s[i]!=s[i-1]) {flag=0;break;} } if(i==len-4) return 1; int a=s[len]-s[len-1]; if(a==1 || a==-1) for(i=len-1;i>len-4;i--){ if(s[i]-s[i-1]!=a) {flag=0;break;} } if(i==len-4) return 1; int year=0,mon=0,day=0,t=1; rep(i,len-7,len-4){ year=year*10+(s[i]-'0'); } //cout<2016) return 0; rep(i,len-3,len-2){ mon=mon*10+(s[i]-'0'); } // cout<12) return 0; rep(i,len-1,len){ day=day*10+(s[i]-'0'); } if((year%4==0&&year%100!=0)||year%400==0) data[2]+=1; if(day<1 || day>data[mon]) return 0; return 1; } int main(){ int t; scanf("%d",&t); while(t--){ scanf("%d",&n); scanf("%d %d",&a,&b); LL ans=0; rep(i,1,n){ scanf("%s",phone[i]); if(judge(phone[i])) ans=ans+(LL)a; else ans=ans+(LL)b; } printf("%I64d\n",ans); } return 0; }