Cod sursa(job #495633)

Utilizator Robert29FMI Tilica Robert Robert29 Data 26 octombrie 2010 11:21:13
Problema Matrix Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#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][27];
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=1;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'+1))
					b[i][j][l]++;
			}
	x=0;			
	for(i=n;i<=m;i++)
		for(j=n;j<=m;j++){
			ok=0;
			for(l=1;l<=26;l++)
				if((b[i][j][l]-b[i-n][j][l]-b[i][j-n][l]+b[i-n][j-n][l])!=v[l])
					ok=1;
			if(ok==0)
				x++;
		}
	fprintf(g,"%d",x);	
	fclose(g);
	fclose(f);
	return 0;
}