Pagini recente » Arhiva de probleme | Monitorul de evaluare | Profil M@2Te4i | Rating Toma Alina (alinatoma) | Cod sursa (job #2634239)
#include <bits/stdc++.h>
#define MOD 1000000007
#define baza 27
using namespace std;
ifstream f("aranjare1.in");
ofstream g("aranjare1.out");
int n,m,k1,i,j,k,t,q,vec[10005],n1;
long long nr;
map <int,int> fr;
char v[105][105],s[10005];
int main()
{
f>>n>>m>>k1;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
{
f>>v[i][j];
}
}
for (i=1;i<=n-m+1;i++)
{
for (j=1;j<=n-m+1;j++)
{
q=0;
for (k=i;k<=i+m-1;k++)
{
for (t=j;t<=j+m-1;t++)
{
vec[++q]=v[k][t]-'A'+1;
}
}
sort (vec+1,vec+q+1);
nr=0;
for (k=1;k<=q;k++)
{
nr=(1LL*nr*baza+vec[k])%MOD;
}
fr[nr]++;
}
}
for (i=1;i<=k1;i++)
{
f>>s;
n1=strlen(s);
for (j=0;j<n1;j++)
{
vec[j+1]=s[j]-'A'+1;
}
sort (vec+1,vec+n1+1);
nr=0;
for (j=1;j<=n1;j++)
{
nr=(nr*baza+vec[j])%MOD;
}
g<<fr[nr]<<'\n';
}
return 0;
}