Pagini recente » Cod sursa (job #1997612) | Cod sursa (job #3168093) | Cod sursa (job #2106362) | Cod sursa (job #2346119) | Cod sursa (job #2355937)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int n,m,nr;
int ok[1002][1002],f[300];
char a[1002][1002],b[1002][1002],c;
int main(){
fin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
fin>>a[i][j];
ok[i][j]=1;
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=m;j++){
fin>>c;
f[c]++;
}
}
for(char c='a';c<='z';c++){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
b[i][j]=(a[i][j]==c)+b[i][j-1]+b[i-1][j]-b[i-1][j-1];
}
}
for(int i=m;i<=n;i++){
for(int j=m;j<=n;j++){
if((b[i][j]-b[i-m][j]-b[i][j-m]+b[i-m][j-m])!=f[c]){
ok[i][j]=0;
}
}
}
}
for(int i=m;i<=n;i++){
for(int j=m;j<=n;j++){
nr+=ok[i][j];
}
}
fout<<nr<<"\n";
return 0;
}