Pagini recente » Cod sursa (job #622517) | Cod sursa (job #3129306) | Cod sursa (job #2279586) | Cod sursa (job #2342941) | Cod sursa (job #2603003)
#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;
}