Pagini recente » Cod sursa (job #1317264) | Cod sursa (job #1451388) | Cod sursa (job #1733635) | Cod sursa (job #1581322) | Cod sursa (job #567248)
Cod sursa(job #567248)
#include<fstream>
#define NMAX 1002
using namespace std;
char a[NMAX][NMAX], x[NMAX];
int n, m, fr[27], s[NMAX][NMAX];
bool b[NMAX][NMAX];
ifstream f("matrix.in");
ofstream g("matrix.out");
void Citeste()
{
f>>n>>m;
int i, j;
f.get();
for (i=1; i<=n; ++i) f.getline(a[i], NMAX);
for (i=1; i<=m; ++i)
{
f.getline(x, NMAX);
for (j=0; j<m; ++j) ++fr[x[j]-'a'+1];
}
}
void Solve()
{
char c;
int i, j, nr=n*n;
for (c='a'; c<='z'; ++c)
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
{
s[i][j]=(c==a[i][j-1])+s[i-1][j]+s[i][j-1]-s[i-1][j-1];
if (s[i][j]-s[i-m][j]-s[i][j-m]+s[i-m][j-m]!=fr[c-'a'+1] && !b[i][j]) --nr, b[i][j]=1;
}
g<<nr<<"\n";
}
int main()
{
Citeste();
Solve();
f.close();
g.close();
return 0;
}