Cod sursa(job #575673)

Utilizator Catah15Catalin Haidau Catah15 Data 8 aprilie 2011 17:21:14
Problema Matrix Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>

using namespace std;

#define maxN 1005


char a[maxN][maxN];
int vir[30], v[30], sol, N, M;


int main()
{
	ifstream f("matrix.in");
	ofstream g("matrix.out");
	
	f >> N >> M;
	
	for (int i = 1; i <= N; ++ i)
		for (int j = 1; j <= N; ++ j)
			f >> a[i][j];
	
	
	for (int i = 1; i <= M; ++ i)
		for (int j = 1; j <= M; ++ j)
		{
			char c;
			
			f >> c;
			
			++ vir[c - 'a'];
		}
	
	
	for (int i = 1; i <= N; ++ i)
		for (int j = 1; j <= N; ++ j)
		{
			memset (v, 0, sizeof (v));
			
			for (int x = i; x < i + M; ++ x)
				for (int y = j; y < j + M; ++ y)
					++ v[a[x][y] - 'a'];
			
			bool ok = true;
			
			for (int x = 0; x < 26; ++ x)
				if (v[x] != vir[x])
				{
					ok = false;
					break;
				}
				
			if (ok) ++ sol;
		}
	
	
	g << sol;
	
	
	f.close();
	g.close();
	
	return 0;
}