Pagini recente » Cod sursa (job #1179778) | Cod sursa (job #1937059) | Cod sursa (job #2863333) | Cod sursa (job #1448306) | Cod sursa (job #1334339)
#include<cstdio>
#include<algorithm>
#define Nmax 750
using namespace std;
int n,m,i,j,l,p,q,nr,sol,ok;
int a[27][Nmax][Nmax];
int main()
{
char v[Nmax][Nmax],s[Nmax];
int w[27];
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%d %d\n",&n,&m);
for (l=0;l<=26;l++) w[l]=0;
for (i=1;i<=n;i++)
{
gets(v[i]+1);
for (j=1;j<=n;j++)
{
for (l=0;l<26;l++)
a[l][i][j]=a[l][i-1][j]+a[l][i][j-1]-a[l][i-1][j-1];
a[v[i][j]-'a'][i][j]++;
}
}
for (i=1;i<=m;i++)
{
gets(s+1);
for (j=1;j<=m;j++)
w[s[j]-'a']++;
}
for (i=m;i<=n;i++)
for (j=m;j<=n;j++)
{
ok=1;
for (l=0;l<26;l++)
if (a[l][i][j]-a[l][i-m][j]-a[l][i][j-m]+a[l][i-m][j-m]!=w[l])
{ok=0; break;}
sol=sol+ok;
}
printf("%d",sol);
return 0;
}