Pagini recente » Cod sursa (job #389673) | Cod sursa (job #919750) | Cod sursa (job #2379597) | Cod sursa (job #2963173) | Cod sursa (job #2603216)
#include <fstream>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int n,m,i,j,sol,d[1005][1005],ok[1005][1005],f[200];
char a[1005][1005],b[1005][1005],lit;
int main(){
fin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fin>>a[i][j];
for(i=1;i<=m;i++)
for(j=1;j<=m;j++){
fin>>b[i][j];
f[b[i][j]]++; ///cate litere de fiecare tip contine virusul
}
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]!=f[lit])
ok[i][j]=1;
}
for(i=m;i<=n;i++)
for(j=m;j<=n;j++)
sol+=1-ok[i][j];
fout<<sol;
return 0;
}