Pagini recente » Cod sursa (job #304664) | Cod sursa (job #385218) | Diferente pentru implica-te/arhiva-educationala intre reviziile 223 si 100 | Cod sursa (job #1760144) | Cod sursa (job #105958)
Cod sursa(job #105958)
#include <stdio.h>
#include <string.h>
#include <string>
#include <set>
using namespace std;
set <string> cuv;
char s[10000100],
a[50001][20];
string temp;
int i, l, lmax, j, n, sol, lt, d;
int main()
{
freopen("abc2.in","r",stdin);
freopen("abc2.out","w",stdout);
gets(s);
while (scanf("%s",a[++i])>0)
{
l = strlen(a[i]);
temp = a[i];
cuv.insert(temp);
if (l>lmax) lmax = l;
}
n = i;
for (i = 0; s[i] != '\0'; ++ i)
{
lt = 0;
for (j = 0; j < lmax && s[j+i] != '\0'; ++ j)
{
temp[lt] = s[j+i];
temp[++lt] = '\0';
if (cuv.find(temp)!=cuv.end())
++sol;
}
}
printf("%d\n", sol);
}