Pagini recente » Cod sursa (job #2549683) | Cod sursa (job #2328061) | Cod sursa (job #3194972) | Cod sursa (job #195153) | Cod sursa (job #2360670)
#include <fstream>
using namespace std;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
short int n,m,i,j,k,v[1005][1005][27],nr;
int fr[27];
char c;
bool ok;
int main(){
fin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=m;j++){
fin>>c;
v[i][j][c-'a'+1]++;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
fin>>c;
fr[c-'a'+1]++;
}
for(k=1;k<=26;k++)
if(fr[k]!=0){
for(i=1;i<=m;i++)
for(j=1;j<=m;j++)
v[i][j][k]+=v[i-1][j][k]+v[i][j-1][k]-v[i-1][j-1][k];
}
for(i=n;i<=m;i++)
for(j=n;j<=m;j++){
ok=1;
for(k=1;k<=26;k++)
if(fr[k]!=0){
if(v[i][j][k]-v[i-n][j][k]-v[i][j-n][k]+v[i-n][j-n][k]!=fr[k]){
ok=0;
break;
}
}
if(ok)
nr++;
}
fout<<nr;
return 0;
}