#include char phn[20]; bool ry(int year) { if (year % 400 == 0) return true; return (year % 4 == 0 && year % 100 != 0); } bool checkdate() { int year = (phn[3]-'0') * 1000 + (phn[4]-'0') * 100 + (phn[5]-'0') * 10 + phn[6]-'0'; if (year < 1980 || year > 2016) return false; int month = (phn[7]-'0') * 10 + phn[8]-'0'; if (month < 1 || month > 12) return false; int day = (phn[9]-'0') * 10 + phn[10]-'0'; if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) && day > 31) return false; if ((month == 4 || month == 6 || month == 9 || month == 11) && day > 30) return false; if (month == 2 && day > (ry(year)?29:28)) return false; // printf("%d %d %d\n",year,month,day); return true; } bool valid() { short dis = phn[7] - phn[6]; if (dis < -1 || dis > 1) return checkdate(); for(int i = 8;i < 11;++i) if (phn[i] - phn[i - 1] != dis) return checkdate(); return true; } int main() { #ifdef local // freopen("phonenum_test.txt","r",stdin); #endif int T,n,a,b; long long ans; scanf("%d",&T); for(int i = 1;i <= T;++i) { ans = 0; scanf("%d%d%d",&n,&a,&b);gets(phn); for(int j = 1;j <= n;++j) { gets(phn); ans += (valid())?a:b; // if (valid()) printf("valid:%s\n",phn); } printf("%I64d\n",ans); } return 0; }