Pagini recente » Cod sursa (job #70308) | Cod sursa (job #2493194) | Cod sursa (job #1421188) | Cod sursa (job #1387298) | Cod sursa (job #496104)
Cod sursa(job #496104)
#include<stdio.h>
FILE*f=fopen("matrix.in","r");
FILE*g=fopen("matrix.out","w");
int i,j,x,m,n,v[27],b[1001][1001];
char l,ok,a[1001][1001],c[1001][1001];
int main() {
fscanf(f,"%d%d\n",&m,&n);
for(i=1;i<=m;i++){
for(j=1;j<=m;j++)
fscanf(f,"%c",&a[i][j]);
fscanf(f,"\n");
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
fscanf(f,"%c",&x);
v[x-'a'+1]++;
}
fscanf(f,"\n");
}
x=0;
for(l=0;l<26;l++){
for(i=1;i<=m;i++)
for(j=1;j<=m;j++){
b[i][j]=b[i-1][j]+b[i][j-1]-b[i-1][j-1];
if(l==(a[i][j]-'a'))
b[i][j]++;
}
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
if((b[i][j]-b[i-n][j]-b[i][j-n]+b[i-n][j-n])!=v[l+1])
c[i][j]=1;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
b[i][j]=0;
}
for(i=n;i<=m;i++)
for(j=n;j<=m;j++)
if(c[i][j]==0)
x++;
fprintf(g,"%d",x);
fclose(g);
fclose(f);
return 0;
}