Pagini recente » Cod sursa (job #2861892) | Cod sursa (job #1204039) | Cod sursa (job #1528295) | Cod sursa (job #2268547) | Cod sursa (job #877046)
Cod sursa(job #877046)
#include <fstream>
using namespace std;
ifstream fin ("matrix.in");
ofstream fout ("matrix.out");
char s[28], b;
char f[1000][1000] , a[1000][1000];
char v[140];
int lit[1000][1000];
int m,n,i,j,h,k,sol;
int main () {
fin>>m>>n;
for (i=1;i<=m;i++)
for (j=1;j<=m;j++)
fin>>a[i][j];
for (i=1;i<=n*n;i++){
fin>>b;
v[b]++;
}
for (i=n;i<=m;i++)
for (j=n;j<=m;j++)
f[i][j]=1;
// char s[28]="abcdefghijklmnopqrstuvwxyz";
for (char c='a';c<='z';c++){
/*
for (j=1;j<=m;j++)
for (h=1;h<=m;h++)
lit[j][h]=k;
if (a[j][h]==s[i])
lit[j][h]=++k;
*/
for (j=1;j<=m;j++)
for (h=1;h<=m;h++)
lit[j][h] = lit[j-1][h]+lit[j][h-1]-lit[j-1][h-1] + (c == a[j][h]);
for (j=n;j<=m;j++)
for (h=n;h<=m;h++)
if (lit[j][h]-lit[j][h-n]-lit[j-n][h]+lit[j-n][h-n]!=v[c])
f[j][h]=0;
}
for (i=n;i<=m;i++)
for (j=n;j<=m;j++)
if (f[i][j]==1)
sol++;
fout<<sol<<"\n";
return 0;
}