Cod sursa(job #1257071)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 7 noiembrie 2014 10:41:22
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
using namespace std;
int m, n, k, i, j, nr;
int s[1001][1001], v[150], b[1001][1001];
char a[1001][1001], x;
ifstream fin("matrix.in");
ofstream fout("matrix.out");
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; i++){
		for(j = 1; j <= n; j++){
			fin>> x;
			v[x]++;
		}
	}
	for(k = 'a'; k <= 'z'; k++){
		if(v[k] != 0){
			for(i = 1; i <= m; i++){
				for(j = 1; j <= m; j++){
					s[i][j] = s[i-1][j] + s[i][j-1] - s[i-1][j-1];
					if(a[i][j] == k){
						s[i][j]++;
					}
				}
			}
			for(i = n; i <= m; i++){
				for(j = n; j <= m; j++){
					if(b[i][j] == 0){
						if((s[i][j] - s[i-n][j] - s[i][j-n] + s[i-n][j-n]) != v[k]){
							b[i][j] = 1;
						}
					}
				}
			}
		}
	}
	for(i = n; i <= m; i++){
		for(j = n; j <= m; j++){
			if(b[i][j] == 0){
				nr++;
			}
		}
	}
	fout<< nr;
	return 0;
}