题目描述
题解
提交记录
时间限制:1 s内存限制:128 MB
给你n∗m的一个网格,求2∗2的方格的个数,里面的字符可以构成'face'
输入
第一行输入两个整数n,m(1≤�,�≤501≤n,m≤50)
接下来n行每行m个小写字符
输出
输出满足条件的2∗2的方格的数量
样例
输入 1复制
2 3 fac cef
输出 1复制
2
#include<bits/stdc++.h>
using namespace std;
int main(){
int num=0;
int n,m;
cin>>n>>m;
char s[1010][1010];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>s[i][j];
}
}
for(int i=1;i<=n-1; i++){
for(int j=1;j<=m-1;j++){
int f=0,a=0,c=0,e=0;
if(s[i][j] == 'f')f++;
else if(s[i][j]=='a')a++;
else if(s[i][j]=='c')c++;
else if(s[i][j]=='e')e++;
if(s[i+1][j] == 'f')f++;
else if(s[i+1][j]=='a')a++;
else if(s[i+1][j]=='c')c++;
else if(s[i+1][j]=='e')e++;
if(s[i][j+1] == 'f')f++;
else if(s[i][j+1]=='a')a++;
else if(s[i][j+1]=='c')c++;
else if(s[i][j+1]=='e')e++;
if(s[i+1][j+1] == 'f')f++;
else if(s[i+1][j+1]=='a')a++;
else if(s[i+1][j+1]=='c')c++;
else if(s[i+1][j+1]=='e')e++;
if(f == 1 && a == 1 && c == 1 && e == 1)num++;
}
}
printf("%d",num);
return 0;
}
输入
2 3
fac
cef
输出
2
nice