Pagini recente » Cod sursa (job #1781822) | Cod sursa (job #1372294) | Cod sursa (job #35310) | Cod sursa (job #1970126) | Cod sursa (job #2732978)
#include <bits/stdc++.h>
#define nmax 1003
using namespace std;
char v[nmax][nmax];
int f[27][nmax][nmax];
int vir[27];
int main()
{
freopen("matrix.in","r",stdin);
freopen("matrix.in","w",stdout);
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
string a;
cin>>a;
for(int j=1;j<=n;j++)
{
v[i][j]=a[j-1];
for(int k=0;k<27;k++)
f[k][i][j]=f[k][i-1][j]+f[k][i][j-1]-f[k][i-1][j-1];
f[v[i][j]-'a'][i][j]++;
}
}
for(int i=0;i<m;i++)
{
string a;
cin>>a;
for(int j=0;j<m;j++)
{
vir[a[j]-'a']++;
}
}
int ans=0;
for(int i=0;i<=n-m;i++)
{
for(int j=0;j<=n-m;j++)
{
bool ok=1;
for(int k=0;k<27;k++)
{
int s=f[k][i+m][j+m]-f[k][i+m][j]-f[k][i][j+m]+f[k][i][j];
if(s!=vir[k])
{
ok=0;
}
}
if(ok) ans++;
}
}
cout<<ans;
return 0;
}