Cod sursa(job #1711574)

Utilizator Mihai9Oniga Mihai Mihai9 Data 31 mai 2016 18:31:24
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream>
#define N 1100
using namespace std;
ifstream f("matrix.in");
ofstream g("matrix.out");
char a[N][N],c;
int D[N][N],s[N][N],v[N],m,i,j,k,n,sol;
int main ()
{
    f>>n>>m;
    for(i=1;i<=n;++i)
        f>>(a[i]+1);
    for(i=1;i<=m*m;++i)
    {
        f>>c;
        v[c-'a'+1]++;
    }
    for(i=m;i<=n;++i)
        for(j=m;j<=n;++j)
            D[i][j]=1;
    for(c=1;c<=26;++c)
    {
        for(j=1;j<=n;++j)
            for(k=1;k<=n;++k)
                s[j][k]=s[j-1][k]+s[j][k-1]-s[j-1][k-1]+(a[j][k]-'a'+1==c);
        for(j=m;j<=n;++j)
            for(k=m;k<=n;++k)
                if(s[j][k]-s[j-m][k]-s[j][k-m]+s[j-m][k-m]!=v[c])
                    D[j][k]=0;
    }
    for(i=1;i<=n;++i)
        for(j=1;j<=n;++j)
            sol+=D[i][j];
    g<<sol;
    return 0;
}