Pagini recente » winter-challenge-1/rezultate-9-10 | Cod sursa (job #2812036) | Cod sursa (job #1673487) | Cod sursa (job #3284037) | Cod sursa (job #496040)
Cod sursa(job #496040)
#include<stdio.h>
#include<string.h>
#define ct 1001
FILE*f=fopen("matrix.in","r");
FILE*g=fopen("matrix.out","w");
int v[150],i,j,n,m,d,c[ct][ct],nr;
char a[ct][ct],x,ok[ct][ct];
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");
}
fscanf(f,"\n");
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
fscanf(f,"%c",&x);
v[x]++;
}
fscanf(f,"\n");
}
for(d='a';d<='z';d++){
memset(c,0,sizeof(c));
for(i=1;i<=m;i++){
for(j=1;j<=m;j++){
c[i][j]=c[i-1][j]+c[i][j-1]-c[i-1][j-1];
if(a[i][j]==d)
c[i][j]++;
}
}
for(i=n;i<=m;i++){
for(j=n;j<=m;j++){
if((c[i][j]-c[i-n][j]-c[i][j-n]+c[i-n][j-n]!=v[d]))
ok[i][j]=1;
}
}
}
for(i=n;i<=m;i++)
for(j=n;j<=m;j++)
if(ok[i][j]==0)
nr++;
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}