Cod sursa(job #10603)

Utilizator crawlerPuni Andrei Paul crawler Data 28 ianuarie 2007 19:24:42
Problema Matrix Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>

long v[1024][1024][26], x[26];

int main()
 {
   freopen("matrix.in","r",stdin);
   freopen("matrix.out","w",stdout);

   register long i,j,k, n,m, T=0;
   register char c;

   scanf("%ld%ld\n", &n,&m);

   for(i=1;i<=n;++i)
    {
     for(j=1;j<=n;++j)
     {
      scanf("%c", &c);
      printf("%c", c);
      for(k=0;k<=25;++k)
       v[i][j][k]=v[i][j-1][k]+v[i-1][j][k]-v[i-1][j-1][k];
      ++v[i][j][c-97];
     }
    }
   for(i=1;i<=m;++i)
    {
     for(j=1;j<=m;++j)
     {
      scanf("%c", &c);
      printf("%c", c);
      ++x[c-97];
     }
    }


   for(i=m;i<=n;++i)
    for(j=m;j<=n;++j)
     {
      c=1;
      for(k=0;k<=24;++k)
       if(x[k]!=v[i][j][k]-v[i-m][j][k]-v[i][j-m][k]+v[i-m][j-m][k])
        {
         c=0;
         break;
        }
      T+=c;
     }

   printf("%ld\n", T);

   return 0;
 }