Cod sursa(job #3336944)

Utilizator Danut2011PopaDanSebastian Danut2011 Data 26 ianuarie 2026 19:31:54
Problema Matrix Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>

using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int n,m,v[26],f[1002][1002][26],s,rez,i2,j2;
char g[1002][1002],c;
bool ok;
int main()
{
    fin>>m>>n;
    for (int i=1;i<=m;i++)
    {
        for (int j=1;j<=m;j++)
        {
            fin>>g[i][j];
        }
    }
    for (int i=1;i<=n*n;i++)
    {
        fin>>c;
        v[c-'a']++;
    }
    for (int i=1;i<=m;i++)
    {
        for (int j=1;j<=m;j++)
        {
            for (int k=0;k<=25;k++)
            {
                f[i][j][k]=f[i-1][j][k]+f[i][j-1][k]-f[i-1][j-1][k];
            }
            f[i][j][g[i][j]-'a']++;
        }
    }
    for (int i=n;i<=m;i++)
    {
        for (int j=n;j<=m;j++)
        {
            ok=1;
            for (int k=0;k<=25 && ok==1;k++)
            {
                i2=i-n+1;
                j2=j-n+1;
                s=f[i][j][k]-f[i][j2-1][k];
                s-=f[i2-1][j][k];
                s+=f[i2-1][j2-1][k];
                if (s!=v[k])
                {
                    ok=0;
                }
            }
            rez+=ok;
        }
    }
    fout<<rez;
    return 0;
}