Cod sursa(job #2603003)

Utilizator alex_benescuAlex Ben alex_benescu Data 18 aprilie 2020 13:37:51
Problema Matrix Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.65 kb
#include<fstream>
#define N 1100
using namespace std;
ifstream f("matrix.in");
ofstream g("matrix.out");
char a[N][N],c;
int D[N][N],s[N][N],v[N],m,i,j,k,n,sol;
int main(){
	f>>n>>m;
	for(i=1;i<=n;++i)
		f>>(a[i]+1);
	for(i=1;i<=m*m;++i){
		f>>c;
		v[c-'a'+1]++;
	}
	for(i=m;i<=n;++i)
		for(j=m;j<=n;++j)
			D[i][j]=1;
	for(c=1;c<=26;++c){
		for(j=1;j<=n;++j)
			for(k=1;k<=n;++k)
				s[j][k]=s[j-1][k]+s[j][k-1]-s[j-1][k-1]+(a[j][k]-'a'+1==c);
		for(j=m;j<=n;++j)
			for(k=m;k<=n;++k)
				if(s[j][k]-s[j-m][k]-s[j][k-m]+s[j-m][k-m]!=v[c])
					D[j][k]=0;
	}
	for(i=1;i<=n;++i)
		for(j=1;j<=n;++j)
			sol+=D[i][j];
	g<<sol;
	return 0;
}