subtask#0 #31 #32 T,求优化
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1010;
ll s[N][N],d[N][N];
char a[N][N];
ll n,m,p=998244353,c,f;
int main(){
int T,id;cin>>T>>id;
while(T--){
cin>>n>>m>>c>>f;
memset(s,0,sizeof s);
memset(d,0,sizeof d);
memset(a,0,sizeof a);
for(int i = 1;i<=n;i++)
for(int j = 1;j<=m;j++)cin>>a[i][j];
for(int i = 1;i<=n;i++)
for(int j = m;j>=1;j--){
if(a[i][j]=='0'){
s[i][j] = s[i][j+1] + 1;
}
}
for(int j = 1;j<=m;j++)
for(int i = n;i>=1;i--){
if(a[i][j]=='0')d[i][j] = d[i+1][j] + 1;
}
ll ans1 = 0,ans2 = 0;
for(int j = 1;j<=m;j++){
for(int i = 1;i<=n;i++){
if(a[i+1][j]=='1'||a[i][j]=='1')continue;
for(int k = i+2;k<=n;k++){
if(a[k][j]=='1')break;
if(s[i][j]>1&&s[k][j]>1){
ans1 += (s[i][j]-1)*(s[k][j]-1);
if(d[k][j]>1)ans2+=(s[i][j]-1)*(s[k][j]-1)*(d[k][j]-1);
}
}
}
}
cout<<(ans1*c)%p<<" "<<(ans2*f)%p<<endl;
}
return 0;
}