#include<bits/stdc++.h>
#define int long long
#define mod 998244353
using namespace std;
const int N=1e3+10;
int t,id,n,m,c,f;
int pre[N][N],qia[N][N],qian[N][N],as[N][N];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>t>>id;
while(t--){
memset(pre,0,sizeof(pre));
memset(qia,0,sizeof(qia));
memset(qian,0,sizeof(qian));
int ansc=0,ansf=0;
cin>>n>>m>>c>>f;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
char c;
cin>>c;
as[i][j]=c-'0';
pre[i][j]=0;
qia[i][j]=0;
qian[i][j]=0;
if(i==1)
qian[n+1][j]=-1;
}
pre[i][m+1]=-1;
}
for(int i=n;i>=1;i--){
for(int j=m;j>=1;j--){
pre[i][j]=pre[i][j+1]+1;
qia[i][j]=qia[i+1][j]+pre[i][j];
qian[i][j]=qian[i+1][j]+1;
if(as[i][j]){
pre[i][j]=-1;
qia[i][j]=0;
qian[i][j]=-1;
}
}
}
for(int i=1;i<=n-2;i++){
for(int j=1;j<=m;j++){
if(!as[i+1][j]&&!as[i][j]&&qian[i][j]>=2)
ansc+=pre[i][j]*qia[i+2][j];
ansc%=mod;
}
}
for(int i=1;i<=n-3;i++){
for(int j=1;j<=m;j++){
if(!as[i+1][j]&&!as[i][j]&&qian[i][j]>=3)
ansf+=(pre[i][j]*(qia[i+2][j]-qia[i+qian[i][j]][j]));
ansf%=mod;
}
}
cout<<(ansc*c)%mod<<" "<<(ansf*f)%mod<<'\n';
}
return 0;
}
提交记录