Pagini recente » Cod sursa (job #1876091) | Cod sursa (job #1825589) | Cod sursa (job #2035474) | Cod sursa (job #1202248) | Cod sursa (job #635851)
Cod sursa(job #635851)
#include <stdio.h>
#define val 1009
int n , m , i , j , k , h , c,q;
char V[val][val] , a;
int Z[val][val];
int Ok[val][val];
int Fr[300];
int main(){
freopen("matrix.in","r",stdin);
freopen("matrix.out","w",stdout);
scanf("%d%d\n",&m,&n);
for(i=1;i<=m;i++){
scanf("%s",&V[i]+1);
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
scanf("%c",&a);
Fr[a]++;
}
scanf("\n");
}
for(i='a';i<='z';i++){
if(Fr[i]==0)
continue;
for(j=1;j<=m;j++){
for(k=1;k<=m;k++){
Z[j][k]=Z[j-1][k]+Z[j][k-1]-Z[j-1][k-1];
if(V[j][k]==i)
Z[j][k]++;
if(j>=n&&k>=n&&Ok[j][k]==0){
h=Z[j][k]-Z[j][k-n]-Z[j-n][k]+Z[j-n][k-n];
if(h!=Fr[i])
Ok[j][k]=1;
}
}
}
}
for(i=n;i<=m;i++){
for(j=n;j<=m;j++){
if(Ok[i][j]==0)
c++;
}
}
printf("%d",c);
return 0;
}