Pagini recente » Cod sursa (job #2310090) | Cod sursa (job #1320633) | Cod sursa (job #2227591) | Cod sursa (job #191277) | Cod sursa (job #581248)
Cod sursa(job #581248)
# include <cstdio>
# include <cstring>
using namespace std;
int n, m, sol;
int f[26], g[26], a[1001][1001];
char x[1001];
void read () {
std :: freopen ( "matrix.in", "rt", stdin );
scanf ( " %d %d ", &n, &m );
for ( int i = 1; i <= n; ++i ) {
gets ( x + 1 );
for ( int j = 1; j <= n; ++j )
a[i][j] = x[j];
}
for ( int i = 1; i <= m; ++i ) {
gets ( x + 1 );
for ( int j = 1; j <= m; ++j )
++f[ x[j] - 'a' ];
}
}
void write () {
std :: freopen ( "matrix.out", "wt", stdout );
printf ( "%d\n", sol );
}
int main () {
read ();
for ( int i = 1; i <= n - m + 1; ++i )
for ( int j = 1; j <= n - m + 1; ++j ) {
if ( !f[ a[i][j] - 'a' ] ) continue;
memset ( g, 0, sizeof g );
for ( int k = i; k < i + m; ++k ) {
for ( int l = j; l < j + m; ++l ) {
++g[ a[k][l] - 'a' ];
}
}
int ok = 1;
for ( int k = 0; k < 26; ++k )
if ( !( ok = f[k] == g[k] ) )
break;
if ( ok ) ++sol;
}
write ();
return 0;
}