Pagini recente » Cod sursa (job #2789033) | Cod sursa (job #2219356) | Cod sursa (job #92929) | Cod sursa (job #2228685) | Cod sursa (job #498260)
Cod sursa(job #498260)
#include <cstdio>
#define nmax 1010
char s[nmax];
int n, m, a[nmax][nmax], b[30], d[30], sol, v[30];
int main()
{
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%d %d\n",&m,&n);
int i, j, k, ok;
for (i=1; i<=m; i++)
{
fgets(s, nmax, stdin);
for (j=1; j<=m; j++) a[i][j]=s[j-1]-'a'+1;
}
for (i=0; i<n; i++)
{
fgets(s, nmax, stdin);
for (j=0; j<n; j++) v[s[j]-'a'+1]++;
}
for (i=1; i<n; i++)
for (j=1; j<n; j++)
b[a[i][j]]++;
for (i=n; i<=m; i++)
{
for (j=1; j<n; j++)
{
b[a[i-n][j]]--;
b[a[i][j]]++;
}
for (j=1; j<=26; j++) d[j]=b[j];
for (j=n; j<=m; j++)
{
for (k=i; k>i-n; k--)
{
d[a[k][j-n]]--;
d[a[k][j]]++;
}
ok=1;
for (k=1; k<=26; k++)
if (d[k]!=v[k])
{
ok=0;
break;
}
sol+=ok;
}
}
printf("%d\n",sol);
}