Pagini recente » Cod sursa (job #523393) | Cod sursa (job #229103) | Cod sursa (job #677596) | Cod sursa (job #1601902) | Cod sursa (job #567323)
Cod sursa(job #567323)
#include <stdio.h>
#define nmax 1002
long i, la, lb, j, s[nmax][nmax], rez, nr[30];
char c, a[nmax][nmax], b[nmax][nmax];
bool gas[nmax][nmax];
void citire()
{
scanf("%ld %ld\n",&la, &lb);
for (i=1;i<=la;i++)
gets(a[i]);
for (i=1;i<=lb;i++)
gets(b[i]);
}
void rezolvare()
{
for (i=1;i<=lb;i++)
for (j=1;j<=lb;j++)
nr[b[i][j-1]-'a']++;
for (c='a';c<='z';c++)
for (i=1;i<=la;i++)
for (j=1;j<=la;j++)
{
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1];
if (a[i][j-1]==c)
s[i][j]++;
if ((i>=lb) && (j>=lb))
if (s[i][j]-s[i-lb][j]-s[i][j-lb]+s[i-lb][j-lb]!=nr[c-'a'])
gas[i][j]=1;
}
for (i=lb;i<=la;i++)
for (j=lb;j<=la;j++)
rez+=!gas[i][j];
printf("%ld",rez);
}
int main()
{
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
citire();
rezolvare();
return 0;
}