Pagini recente » Cod sursa (job #610512) | Cod sursa (job #1075878) | Cod sursa (job #587897) | Cod sursa (job #676921) | Cod sursa (job #3292872)
#include <fstream>
using namespace std;
ifstream cin ("matrix.in");
ofstream cout ("matrix.out");
int v[1001][1001][27],f[27],s[27];
int main()
{
int n,m;
cin>>n>>m;
char a;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
cin>>a;
a=a-'a';
v[i][j][a]++;
for (int k=0;k<=26;k++)
{
v[i][j][k]+=v[i-1][j][k]+v[i][j-1][k]-v[i-1][j-1][k];
}
}
}
for (int i=1;i<=m;i++)
{
for (int j=1;j<=m;j++)
{
cin>>a;
a=a-'a';
f[a]++;
}
}
int nr=0;
for (int i1=1,i2=m;i2<=n;i1++,i2++)
{
for (int j1=1,j2=m;j2<=n;j1++,j2++)
{
int ok=1;
for (int k=0;k<=26;k++)
{
s[k]=v[i2][j2][k]-v[i1-1][j2][k]-v[i2][j1-1][k]+v[i1-1][j1-1][k];
if (s[k]!=f[k])
ok=0;
}
nr+=ok;
}
}
cout<<nr;
return 0;
}