Cod sursa(job #3336957)

Utilizator Danut2011PopaDanSebastian Danut2011 Data 26 ianuarie 2026 19:52:55
Problema Matrix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <fstream>

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