Pagini recente » Cod sursa (job #2720138) | Cod sursa (job #2301099) | Cod sursa (job #1031099) | Cod sursa (job #3173884) | Cod sursa (job #567983)
Cod sursa(job #567983)
#include <stdio.h>
FILE *f=fopen("matrix.in","r");
FILE *g=fopen("matrix.out","w");
int n,m;
int fr[301];
int b[1001][1001];
char a[1001][1001];
bool ver[1001][1001];
int main(void){
register int i,j;
fscanf(f,"%d %d\n",&m,&n);
for(i=1;i<=m;i++){
fscanf(f,"%s",a[i]+1);
fscanf(f,"\n");
}
char aux[1004];
for(i=1;i<=n;i++){
fscanf(f,"%s",aux+1);
for(j=1;j<=n;j++){
fr[aux[j]]++;
}
fscanf(f,"\n");
}
fclose(f);
int k;
int nr=0;
for(k='a';k<='z';k++){
if(fr[k]){
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(a[i][j]==k){
b[i][j]++;
}
if(i>=n && j>=n && b[i][j]+b[i-n][j-n]-b[i-n][j]-b[i][j-n]!=fr[k]){
if(!ver[i][j])
nr++;
ver[i][j]=true;
}
}
}
}
}
fprintf(g,"%d",(m-n+1)*(m-n+1)-nr);
fclose(g);
return 0;
}