Pagini recente » Cod sursa (job #2413295) | Cod sursa (job #902524) | Cod sursa (job #1275819) | Cod sursa (job #2880768) | Cod sursa (job #2356780)
#include <fstream>
using namespace std;
ifstream fin ("matrix.in");
ofstream fout ("matrix.out");
int n, m, hz[1004], w[1005][1005], sol;
char v[1005][1005], ok[1005][1005], ch;
int main(){
fin>>n>>m;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
fin>>v[i][j];
ok[i][j] = 1;
}
}
for(int i = 1; i <= m; i++){
for(int j = 1; j <= m; j++){
fin>>ch;
hz[ch - 'a' + 1]++;
}
}
for(char k = 'a'; k <= 'z'; k++){
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
w[i][j] = w[i - 1][j] + w[i][j - 1] - w[i - 1][j - 1];
if(v[i][j] == k){
w[i][j]++;
}
}
}
for(int i = m; i <= n; i++){
for(int j = m; j <= n; j++){
int val = w[i][j] - w[i][j - m] - w[i - m][j] + w[i - m][j - m];
if(val != hz[k - 'a' + 1]){
ok[i][j] = 0;
}
}
}
}
for(int i = m; i <= n; i++){
for(int j = m; j <= n; j++){
if(ok[i][j] == 1){
sol++;
}
}
}
fout<<sol;
return 0;
}