Pagini recente » Cod sursa (job #2793815) | Cod sursa (job #521184) | Cod sursa (job #1441239) | Cod sursa (job #508138) | Cod sursa (job #1067916)
#include <fstream>
#include <bitset>
using namespace std;
const int N=1005;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int f1[26], f2[N][N];
char a[N][N], cit[N];
bitset <N> v[N];
int main()
{
int n, m, i, j, k, sol=0;
fin>>n>>m;
for(i=1;i<=n;i++) fin>>(a[i]+1);
for(i=1;i<=m;i++)
{
fin>>(cit+1);
for(j=1;j<=m;j++)
{
f1[cit[j]-'a']++;
}
}
for(k=0;k<26;k++)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
f2[i][j]=f2[i-1][j]+f2[i][j-1]-f2[i-1][j-1];
if(a[i][j]-'a'==k) f2[i][j]++;
if(i>=m&&j>=m) if(f2[i][j]-f2[i-m][j]-f2[i][j-m]+f2[i-m][j-m]!=f1[k]) v[i][j]=1;
}
}
}
for(i=m;i<=n;i++)
{
for(j=m;j<=n;j++)
{
if(!v[i][j]) sol++;
}
}
fout<<sol;
}