Pagini recente » Cod sursa (job #2370907) | Cod sursa (job #1486700) | Cod sursa (job #890649) | Cod sursa (job #2526502) | Cod sursa (job #2363136)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
char a[1001][1001],c;
int mat[1001][1001][27],fr[27],sol,m,n;
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
fin>>a[i][j];
for(int k=1;k<=26;k++)
mat[i][j][k]=mat[i-1][j][k]+mat[i][j-1][k]-mat[i-1][j-1][k];
mat[i][j][a[i][j]-'a']++;
}
for(int i=1;i<=m;i++)
for(int j=1;j<=m;j++)
{
fin>>c;
fr[c-'a']++;
}
for(int i=m;i<=n;i++)
for(int j=m;j<=n;j++)
{
bool ok=1;
for(int k=1;k<=26;k++)
if(mat[i][j][k]-mat[i-m][j][k]-mat[i][j-m][k]+mat[i-m][j-m][k]!=fr[k])
{
ok=0;
break;
}
sol+=ok;
}
fout<<sol;
return 0;
}