Pagini recente » Cod sursa (job #1020252) | Cod sursa (job #920216) | Cod sursa (job #207555) | Cod sursa (job #2784142) | Cod sursa (job #2546930)
#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;
}