Cod sursa(job #782972)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 1 septembrie 2012 10:45:58
Problema Matrix Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#define DIM 1010
using namespace std;
ifstream f("matrix.in");
ofstream g("matrix.out");
int m, n, F[130], v[DIM][DIM], sol, i, j;
bool b[DIM][DIM];
char s[DIM], c[DIM][DIM];
int main(){
	f>>m>>n;
	for(i=1; i<=m; i++)
		f>>c[i]+1;
	for(i=1; i<=n; i++)
	{
		f>>s+1;
		for(j=1; j<=n; j++)
			F[ s[j] ]++;
	}
	f.close();
	for(char k='a'; k<='z'; k++)
	{
		memset(v, 0, sizeof(v));
		for(i=1; i<=m; i++)
			for(j=1; j<=m; j++)
				v[i][j]=v[i-1][j]+v[i][j-1]-v[i-1][j-1]+(c[i][j]==k);
		for(i=n; i<=m; i++)
			for(j=n; j<=m; j++)
			{
				if(F[k]!=v[i][j]+v[i-n][j-n]-v[i-n][j]-v[i][j-n])
					b[i][j]=1;
			}
	}
	for(i=n; i<=m; i++)
		for(j=n; j<=m; j++)
			if(b[i][j]==0)
				sol++;
	g<<sol<<"\n";
	g.close();
	return 0;
}