Cod sursa(job #979116)

Utilizator Kira96Denis Mita Kira96 Data 31 iulie 2013 20:08:58
Problema Matrix Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 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;
}