Pagini recente » Cod sursa (job #2665482) | Cod sursa (job #2916460) | Cod sursa (job #190826) | Cod sursa (job #2490146) | Cod sursa (job #495631)
Cod sursa(job #495631)
#include<stdio.h>
FILE * f = fopen("matrix.in","r");
FILE * g = fopen("matrix.out","w");
int m,n,i,j,nr,ok,q;
char x;
char v[27],a[1001][1001];
char b[1001][1001][27];
int main(){
fscanf(f,"%d%d",&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(q=1;q<=26;q++){
if(q==a[i][j]-'a'+1)
b[i][j][q]=b[i-1][j][q]+b[i][j-1][q]-b[i-1][j-1][q];
if(a[i][j]-'a'+1==q){
b[i][j][q]++;
}
}
}
}
for(i=n;i<=m;i++){
for(j=n;j<=m;j++){
ok=0;
for(q=1;q<=26;q++){
if(b[i][j][q]-b[i-1][j][q]-b[i][j-1][q]+b[i-1][j-1][q]!=v[q]){
ok=1;
}
if(ok==0){
nr++;
}
}
}
}
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}