Cod sursa(job #2546921)

Utilizator mihnea.anghelMihnea Anghel mihnea.anghel Data 14 februarie 2020 18:46:27
Problema Matrix Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#define f in
#define g out

using namespace std;
ifstream in ( "matrix.in" );
ofstream out( "matrix.out" );
char a[1010][1010], b[1010][1010], lit;
int d[1010][1010], ok[1010][1010], fr[200];
int n, m, i, j, sol;

int main() {
    f>>n>>m;
    for ( i=1; i <=n ; i++ )
        for ( j=1; j <= n; j++ )
            f>>a[i][j];
    for ( i=1; i <= m; i++ )
        for ( j=1; j <= m; j++ ) {
            f>>b[i][j];
            fr[b[i][j]]++;
        }
    for ( lit = 'a'; lit <= 'z'; lit++ ){
        
        for ( i=1; i <= n; i++ )
            for ( j=1; j <= n; j++ )
                d[i][j] = d[i-1][j] + d[i][j-1] - d[i-1][j-1] + ( lit == a[i][j] );
        
        for ( i=m; i <= n; i++ )
            for ( j=m; j <= n; j++ )
                if ( d[i][j] - d[i-m][j] - d[i][j-m] + d[i-m][j-m] != fr[lit] );
                    ok[i][j] = 1;
        
    }
    for ( i=m; i <= n; i++ )
        for ( j=m; j <= n; j++ )
            sol += 1-ok[i][j];
    g<<sol;
    return 0;
}