Pagini recente » Cod sursa (job #197033) | Cod sursa (job #347677) | Cod sursa (job #1371987) | Cod sursa (job #814309) | Cod sursa (job #495634)
Cod sursa(job #495634)
#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][26];
char l,ok,a[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");
}
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
for(l=0;l<26;l++){
b[i][j][l]=b[i-1][j][l]+b[i][j-1][l]-b[i-1][j-1][l];
if(l==(a[i][j]-'a'))
b[i][j][l]++;
}
x=0;
for(i=n;i<=m;i++)
for(j=n;j<=m;j++){
ok=0;
for(l=0;l<=25;l++)
if((b[i][j][l]-b[i-n][j][l]-b[i][j-n][l]+b[i-n][j-n][l])!=v[l+1])
ok=1;
if(ok==0)
x++;
}
fprintf(g,"%d",x);
fclose(g);
fclose(f);
return 0;
}