Cod sursa(job #2363136)

Utilizator mihaimodiMihai Modi mihaimodi Data 3 martie 2019 12:54:52
Problema Matrix Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
char a[1001][1001],c;
int mat[1001][1001][27],fr[27],sol,m,n;
int main()
{
    fin>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            fin>>a[i][j];
            for(int k=1;k<=26;k++)
                mat[i][j][k]=mat[i-1][j][k]+mat[i][j-1][k]-mat[i-1][j-1][k];
            mat[i][j][a[i][j]-'a']++;
        }
    for(int i=1;i<=m;i++)
        for(int j=1;j<=m;j++)
        {
            fin>>c;
            fr[c-'a']++;
        }
    for(int i=m;i<=n;i++)
        for(int j=m;j<=n;j++)
        {
            bool ok=1;
            for(int k=1;k<=26;k++)
                if(mat[i][j][k]-mat[i-m][j][k]-mat[i][j-m][k]+mat[i-m][j-m][k]!=fr[k])
                {
                    ok=0;
                    break;
                }
            sol+=ok;
        }
    fout<<sol;
    return 0;
}