Pagini recente » Cod sursa (job #2122572) | Cod sursa (job #492935)
Cod sursa(job #492935)
#include<cstdio>
int m,n,nr,x[31],xx[31],xau[31];
char ch,c1[1001][1001],c2[1001][1001];
int main()
{
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%d%d",&m,&n);
scanf("\n");
int i,j;
for(i=0;i<m;i++)
gets(c1[i]);
for(i=0;i<n;i++)
gets(c2[i]);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
x[c2[i][j]-96]++;
for(i=0;i<m-n+1;i++)
for(j=0;j<m-n+1;j++)
xau[c1[i][j]-96]++;
nr=0;
for(i=0;i<m-n+1;i++)
{
if(i>0)
{
for(j=0;j<=m-n+1;j++)
{
xau[c1[i-1][j]-96]--;
xau[c1[i+n-1][j]-96]++;
}
}
for(j=0;j<m-n+1;j++)
{
if(j==0)
{
for(int jj=1;jj<=26;jj++)
xx[jj]=xau[jj];
}
else
{
for(int ii=i;ii<=i+n-1;ii++)
{
xx[c1[ii][j-1]-96]--;
xx[c1[ii][j-1+n]-96]++;
}
}
int da=1;
for(int jj=1;jj<=26;jj++)
if(xx[jj]!=x[jj])
{
da=0;
break;
}
if(da)
nr++;
}
}
printf("%d\n",nr);
return 0;
}