Pagini recente » Cod sursa (job #1118380) | Cod sursa (job #1469317) | Cod sursa (job #1351461) | Cod sursa (job #2797133) | Cod sursa (job #496178)
Cod sursa(job #496178)
#include<fstream>
using namespace std;
ifstream f("matrix.in");
ofstream g("matrix.out");
int v[2][1001][27],genom[27],rasp[27],n,m,sol;
char x,a[1001][1001];
int main()
{
bool ok;
int i,j,k;
f>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
f>>a[i][j];
if(i<m)
v[1][j][a[i][j]-'a']++;
}
}
for(i=1;i<=m;i++)
{
for(j=1;j<=m;j++)
{
f>>x;
genom[x-'a']++;
}
}
for(i=m;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i>m)
v[0][j][a[i-m][j]-'a']++;
v[1][j][a[i][j]-'a']++;
ok=true;
for(k=0;k<26;k++)
{
if(j==1)
rasp[k]=0;
if(j>=m)
{
rasp[k]-=(v[1][j-m][k]-v[0][j-m][k]);
rasp[k]+=(v[1][j][k]-v[0][j][k]);
if(rasp[k]!=genom[k])
ok=false;
}
else
rasp[k]+=(v[1][j][k]-v[0][j][k]);
}
if(ok&&j>=m)
sol++;
}
}
g<<sol;
return 0;
}