略有一点抽象
#include <bits/stdc++.h>
using namespace std;
int n,m;
long long ans;
int dx[4]={1,0,0,-1};
int dy[4]={0,1,-1,0};
int dxx[4]={2,0,0,-2};
int dyy[4]={0,2,-2,0};
int dxxx[4]={3,0,0,-3};
int dyyy[4]={0,3,-3,0};
char a[1005][1005];
void look(int x,int y){
for(int i=0;i<4;i++){
int xx=x+dx[i],yy=y+dy[i];
int xxx=x+dxx[i],yyy=y+dyy[i];
int xxxx=x+dxxx[i],yyyy=y+dyyy[i];
if(xxxx<=0 || xxxx>n || yyyy<=0 || yyyy>n) continue;
if(a[xx][yy]=='e' && a[xxx][yyy]=='h' && a[xxxx][yyyy]=='e') ans++;
}
return;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
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=1;j<=m;j++){
if(a[i][j]=='h') look(i,j);
}
}
cout<<ans;
return 0;
}