Pagini recente » Cod sursa (job #2520182) | Cod sursa (job #421445) | Cod sursa (job #2812137) | Cod sursa (job #1266174) | Cod sursa (job #2548289)
#include <fstream>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
int n,m,i,j,y,l,k,af,v[30],b[30],a[1005][1005],d[1005][1005];
bool ok[1005][1005];
char c;
int main()
{
fin >> n >> m;
for (i=1;i<=n;i++) for (j=1;j<=n;j++)
{
fin >> c;
l=c-'a';
a[i][j]=l;
}
for (i=1;i<=m;i++) for (j=1;j<=m;j++)
{
fin >> c;
l=c-'a';
if (v[l]==0) b[++k]=l;
v[l]++;
}
for (y=1;y<=k;y++)
{
l=b[y];
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];
if (l==a[i][j]) d[i][j]++;
if (i>=m && j>=m)
{
if (d[i][j]-d[i-m][j]-d[i][j-m]+d[i-m][j-m]!=v[l]) ok[i][j]=1;
if (y==k && ok[i][j]==0) af++;
}
}
}
fout << af;
return 0;
}