有谁知道为什么这段代码只有C++14(with O2)才能过吗?用C++98/20/.......都错了一两个点
#include <bits/stdc++.h>
using namespace std;
int main()
{
long long n,m,sum=0;
cin>>n>>m;
char a[n+1][m+1];
for(int p=1;p<=n;p++)
{
for(int i=1;i<=m;i++)
cin>>a[p][i];
}
for(int p=1;p<=n;p++){
for(int i=1;i<=m;i++)
{
if(a[p][i]=='e'&&a[p+1][i]=='h'&&a[p+2][i]=='e'&&a[p+3][i]=='h'){sum++;}
if(a[p][i]=='h'&&a[p+1][i]=='e'&&a[p+2][i]=='h'&&a[p+3][i]=='e'){sum++;}
if(a[p][i]=='e'&&a[p][i+1]=='h'&&a[p][i+2]=='e'&&a[p][i+3]=='h'){sum++;}
if(a[p][i]=='h'&&a[p][i+1]=='e'&&a[p][i+2]=='h'&&a[p][i+3]=='e'){sum++;}
}
}
cout<<sum<<endl;
}