Pagini recente » Cod sursa (job #243152) | Cod sursa (job #2565395) | Cod sursa (job #859870) | Cod sursa (job #2407161) | Cod sursa (job #2795562)
#include <bits/stdc++.h>
#define N 10000005
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
char a[N],s[N];
unordered_map<long long,bool> M;
int main()
{
int i,j,lgmax=-1,lgmin=21,l,ct=0;
fin>>a;
while(fin>>s)
{
long long p=1,x=0;
for(i=0;s[i];i++)
x=x*4+s[i]-'a'+1;
M[x]=1;
lgmax=max(lgmax,i);
lgmin=min(lgmin,i);
cout<<x<<" ";
}
for(l=lgmin;l<=lgmax;l++)
{
long long x=0,p=1;
///l=3;
for(i=0;i<l;i++)
x=x*4+a[i]-'a'+1,p*=4;
p/=4;
if(M.find(x)!=M.end()) ct++;
for(i=l;a[i];i++)
{x=x%p*4+a[i]-'a'+1;///cout<<x<<"\n";
if(M.find(x)!=M.end()) ct++;///ct++;for(j=i-l+1;j<=i;j++) cout<<a[j];cout<<" "<<x<<"\n";}
}///return 0;
}
fout<<ct;
return 0;
}