Cod sursa(job #3144800)

Utilizator Stefanstef99Stefan Puica Stefanstef99 Data 10 august 2023 18:34:39
Problema Matrix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("matrix.in");
ofstream fout("matrix.out");

int n,m,sp1[1005][1005],sp2[1005][1005];
char a[1005][1005],b[1005][1005];

int main()
{
    int i,j,x1,x2,ct=0,n,m;
    fin>>n>>m;
    for(i=1;i<=n;i++)
        fin>>(a[i]+1);
    for(i=1;i<=m;i++)
        fin>>(b[i]+1);
    x1=x2=0;
    for(i=1;i<=m;i++)
        for(j=1;j<=m;j++)
        {
            int k=b[i][j]-'a'+1;
            x1+=k;
            x2+=k*k;
        }
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
        {
            int k=a[i][j]-'a'+1;
            sp1[i][j]=k+sp1[i-1][j]+sp1[i][j-1]-sp1[i-1][j-1];
            sp2[i][j]=k*k+sp2[i-1][j]+sp2[i][j-1]-sp2[i-1][j-1];
        }
    for(i=m;i<=n;i++)
        for(j=m;j<=n;j++)
        {
            int p,q;
            p=sp1[i][j]-sp1[i-m][j]-sp1[i][j-m]+sp1[i-m][j-m];
            q=sp2[i][j]-sp2[i-m][j]-sp2[i][j-m]+sp2[i-m][j-m];
            if(p==x1 && q==x2) ct++;
        }
    fout<<ct;
    return 0;
}