Pagini recente » Cod sursa (job #1693776) | Cod sursa (job #1601633) | Cod sursa (job #2796237) | Cod sursa (job #2531118) | Cod sursa (job #275667)
Cod sursa(job #275667)
#include <iostream.h>
#include <fstream.h>
#include <string.h>
char x[1002][1002],nr1[255],nr2[255];
int egal(char x[], char y[])
{
for(int i=0;i<255;i++)
if(x[i]!=y[i])
return 0;
return 1;
}
int main()
{
char y[1002][1002],sir[1002];
int n,m,i,j,l,c,count=0;
fstream f("matrix.in",ios::in), g("matrix.out",ios::out);
f>>m>>n;
f.get();
for(i=1;i<=m;i++)
{ f.getline(sir,1000);
for(j=0;j<strlen(sir);j++)
x[i][j+1]=sir[j];
}
for(i=1;i<=n;i++)
{ f.getline(sir,1000);
for(j=0;j<strlen(sir);j++)
y[i][j+1]=sir[j];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
nr2[y[i][j]]++;
for(l=1;l<=m-n+1;l++)
{
for(i=l;i<=n+l-1;i++)
for(j=1;j<=n;j++)
nr1[x[i][j]]++;
if(egal(nr1,nr2))
count++;
for(c=2;c<=m-n+1;c++)
{
for(i=l;i<=l+n-1;i++)
nr1[x[i][c-1]]--;
for(i=l;i<=l+n-1;i++)
nr1[x[i][c+n-1]]++;
if(egal(nr1,nr2))
count++;
}
for(i=0;i<255;i++)
nr1[i]=0;
}
g<<count;
f.close();
g.close();
return 0;
}