Pagini recente » Cod sursa (job #2226609) | Cod sursa (job #2463132) | Cod sursa (job #2463283) | Cod sursa (job #3000218) | Cod sursa (job #983155)
Cod sursa(job #983155)
#include <fstream>
using namespace std;
ifstream in("matrix.in");
ofstream out("matrix.out");
int m,n,i,j,l, ok1, nr,t[1001][1001],v[27];
bool b[1001][1001];
char c, a[1001][1001];
int main(){
in>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
in>>a[i][j];
for (i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
in>>c;
v[c-96]++;
}
for(l=1;l<=26;l++)
{
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
{
ok1=0;
if(a[i][j]==96+l) ok1=1;
t[i][j]=t[i][j-1]+t[i-1][j]-t[i-1][j-1]+ok1;
}
for (i=n;i<=m;i++)
for(j=n;j<=m;j++)
if(t[i][j]-t[i-n][j]-t[i][j-n]+t[i-n][j-n]!=v[l]) b[i][j]=true;
}
nr=0;
for(i=n;i<=m;i++)
for(j=n;j<=m;j++)
if(b[i][j]==false) nr++;
out<<nr;
return 0;
}