Cod sursa(job #3346580)

Utilizator Gabriel_DaescuDaescu Gabriel Florin Gabriel_Daescu Data 14 martie 2026 13:27:18
Problema Matrix Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <fstream>
#define NMAX 1002
using namespace std;
ifstream  fin("matrix.in");
ofstream fout("matrix.out");
int N,M;
char fa[27],fb[27],A[NMAX][NMAX],B[NMAX][NMAX];

void citire()
{
    fin>>M>>N;

    for(int i=0; i<M; i++)
    {
        fin>>A[i];
    }

    for(int i=0; i<N; i++)
    {
        fin>>B[i];
    }
}

void frecvente(int x1, int y1, int x2, int y2)
{
    for(int i=0; i<=25; i++)
    {
        fa[i]=0;
    }

    for(int i=x1; i<=x2; i++)
    {
        for(int j=y1; j<=y2; j++)
        {
            fa[A[i][j]-'a']++;
        }
    }
}

int main()
{
    citire();

    for(int i=0; i<N; i++)
    {
        for(int j=0; j<N; j++)
        {
            fb[B[i][j]-'a']++;
        }
    }

    int ans=0;
    for(int i=0; i<M-N+1; i++)
    {
        for(int j=0; j<M-N+1; j++)
        {
            frecvente(i,j,i+N-1,j+N-1);

            int ok=1;
            for(int k=0; k<=25; k++)
            {
                if(fa[k]!=fb[k])
                {
                    ok=0;
                    break;
                }
            }

            if(ok)
            {
                ans++;
            }
        }
    }

    fout<< ans << "\n";

    return 0;
}