Pagini recente » Cod sursa (job #2878900) | Cod sursa (job #2118988) | Cod sursa (job #2226709) | Cod sursa (job #560477) | Cod sursa (job #683426)
Cod sursa(job #683426)
#include <iostream>
#include <fstream>
using namespace std;
char x;
int v[26],c[26], a[1024][1024],m,n,sum=0,fr[1024][1024],b[1024][1024];
int verif()
{
for(int i=1;i<=26;i++)
if(c[i]!=v[i]) return 0;
return 1;
}
void citire()
{
ifstream fin("matrix.in");
fin>>m>>n;
for(int i=1;i<=m;i++)
for(int j=1;j<=m;j++)
{
fin >>x;
a[i][j]=x-'a'+1;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
fin>>x;
++v[x-'a'+1];
}
}
void det()
{
for(int k=1;k<=26;k++)
{
for(int i=1;i<=m;i++)
for(int j=1;j<=m;j++)
fr[i][j]=fr[i-1][j]+fr[i][j-1]-fr[i-1][j-1]+(a[i][j]==k);
for(int i=n;i<=m;i++)
for(int j=n;j<=m;j++)
if(v[k]!=fr[i][j]-fr[i-n][j]-fr[i][j-n]+fr[i-n][j-n])
b[i][j]=1;
}
for(int i=n;i<=m;i++)
for(int j=n;j<=m;j++)
if(b[i][j]==0)
sum++;
}
int main()
{
citire();
det();
ofstream fout("matrix.out");
fout<<sum;
return 0;
}