Cod sursa(job #317110)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 22 mai 2009 16:58:11
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#include<string.h>
long n,m,i,j,t[1050][1050],f['z'+50],l;
char co[1050][1050],vv[1050],lit;
bool x[1050][1050];
int main()
{
 freopen("matrix.in","r",stdin);
 freopen("matrix.out","w",stdout);
 scanf("%ld%ld",&n,&m);
 for(i=1;i<=n;++i)
    scanf("\n%s",co[i]);
 for(i=1;i<=m;++i)
    {scanf("\n%s",vv);
     for(j=1;j<=m;++j)++f[vv[j-1]];}
 for(lit='a';lit<='z';++lit)
    {for(i=1;i<=n;++i)memset(t[i],0,sizeof(t[i]));
     for(i=1;i<=n;++i)
        for(j=1;j<=n;++j)
           {t[i][j]=t[i-1][j]+t[i][j-1]-t[i-1][j-1]+(co[i][j-1]==lit);
            if(x[i][j]==0&&i>=m&&j>=m)if(t[i][j]-t[i-m][j]-t[i][j-m]+t[i-m][j-m]!=f[lit])x[i][j]=1;}}
 for(i=m;i<=n;++i)
    for(j=m;j<=n;++j)
       if(!x[i][j])++l;
 printf("%ld\n",l);
 return 0;
}