Cod sursa(job #236377)

Utilizator marinMari n marin Data 27 decembrie 2008 12:25:49
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#include <string.h>
#define DIM 1002

int ap[130];
char a[DIM][DIM];
int t[DIM][DIM];
char r[DIM][DIM];
char s[DIM];

int n,i,j,m,lit,tot;


int main(){
  FILE *f = fopen("matrix.in","r");
  fscanf(f,"%d%d",&m,&n);
  for (i=1;i<=m;i++){
    fscanf(f,"%s",s);
    strcpy(a[i], "0");
    strcat(a[i],s);
  }

  for (i=1;i<=n;i++){
    fscanf(f,"%s",s);
    for (j=0;j<n;j++)
      ap[s[j]]++;
  }
  fclose(f);

  for (lit = 'a'; lit<='z'; lit++)
    for (i=1;i<=m;i++)
      for (j=1;j<=m;j++){
	t[i][j] = t[i][j-1]+t[i-1][j]-t[i-1][j-1] + ((a[i][j]==lit)?1:0);
	if ((i>=n)&&(j>=n)){
	  if (t[i][j]-t[i-n][j]-t[i][j-n]+t[i-n][j-n]!=ap[lit])
	    r[i][j] = 1;
	}
      }

  for (i=n;i<=m;i++)
    for (j=n;j<=m;j++)
      if (r[i][j]==0)
	tot++;
  FILE *g = fopen("matrix.out","w");
  fprintf(g,"%d",tot);
  fclose(g);

}