Pagini recente » Cod sursa (job #2549936) | Cod sursa (job #2794161) | Cod sursa (job #3143066) | Cod sursa (job #3143820) | Cod sursa (job #236377)
Cod sursa(job #236377)
#include <stdio.h>
#include <string.h>
#define DIM 1002
int ap[130];
char a[DIM][DIM];
int t[DIM][DIM];
char r[DIM][DIM];
char s[DIM];
int n,i,j,m,lit,tot;
int main(){
FILE *f = fopen("matrix.in","r");
fscanf(f,"%d%d",&m,&n);
for (i=1;i<=m;i++){
fscanf(f,"%s",s);
strcpy(a[i], "0");
strcat(a[i],s);
}
for (i=1;i<=n;i++){
fscanf(f,"%s",s);
for (j=0;j<n;j++)
ap[s[j]]++;
}
fclose(f);
for (lit = 'a'; lit<='z'; lit++)
for (i=1;i<=m;i++)
for (j=1;j<=m;j++){
t[i][j] = t[i][j-1]+t[i-1][j]-t[i-1][j-1] + ((a[i][j]==lit)?1:0);
if ((i>=n)&&(j>=n)){
if (t[i][j]-t[i-n][j]-t[i][j-n]+t[i-n][j-n]!=ap[lit])
r[i][j] = 1;
}
}
for (i=n;i<=m;i++)
for (j=n;j<=m;j++)
if (r[i][j]==0)
tot++;
FILE *g = fopen("matrix.out","w");
fprintf(g,"%d",tot);
fclose(g);
}