Cod sursa(job #2355112)

Utilizator Raresr14Rosca Rares Raresr14 Data 25 februarie 2019 20:25:42
Problema Matrix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int n,m,i,j,f[30],D[1010][1010],ok[1010][1010],sol;
char a[1010][1010],c,t;
int main (){
    fin>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            fin>>a[i][j];
    for(i=1;i<=m;i++)
        for(j=1;j<=m;j++){
            fin>>c;
            f[c]++;
        }
    for(i=m;i<=n;i++)
        for(j=m;j<=n;j++)
            ok[i][j]=1;
    for(t='a';t<='z';t++){
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                if(a[i][j]==t)
                    D[i][j]=1+D[i-1][j]+D[i][j-1]-D[i-1][j-1];
                else
                    D[i][j]=D[i-1][j]+D[i][j-1]-D[i-1][j-1];
        for(i=m;i<=n;i++)
            for(j=m;j<=n;j++)
                if(D[i][j]-D[i-m][j]-D[i][j-m]+D[i-m][j-m]!=f[t])
                    ok[i][j]=0;
    }
    for(i=m;i<=n;i++)
        for(j=m;j<=n;j++)
            sol+=ok[i][j];
    fout<<sol;
    return 0;
}