Pagini recente » Cod sursa (job #1149645) | Cod sursa (job #1451930) | Statistici Radu Vultur (horil) | Arhiva de probleme | Cod sursa (job #2547845)
#include <fstream>
#define dim 1001
using namespace std;
int a[dim][dim], d[dim][dim], n, m, i, j, sol[dim], SOL, t, ii, jj;
bool ok[dim][dim];
char c;
int main ()
{
ifstream fin ("matrix.in");
ofstream fout ("matrix.out");
fin>>m>>n;
for (i=1; i<=m; i++)
for (j=1; j<=m; j++)
{
fin>>c;
a[i][j]=c-'a';
}
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
{
fin>>c;
sol[c-'a']++;
}
for (t=0; t<='z'-'a'; t++)
{
for (i=1; i<=m; i++)
for (j=1; j<=m; j++)
d[i][j]=d[i][j-1]+d[i-1][j]-d[i-1][j-1]+(t==a[i][j]);
for (i=1; i<=m-n+1; i++)
for (j=1; j<=m-n+1; j++)
{
ii=i+n-1;
jj=j+n-1;
if (d[ii][jj]-d[i-1][jj]-d[ii][j-1]+d[i-1][j-1]!=sol[t])
ok[i][j]=1;
}
}
for (i=1; i<=m-n+1; i++)
for (j=1; j<=m-n+1; j++)
if (ok[i][j]==0)
SOL++;
fout<<SOL;
}