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