Pagini recente » Cod sursa (job #2065254) | Cod sursa (job #3156549) | Cod sursa (job #1826342) | Cod sursa (job #28828) | Cod sursa (job #1837031)
#include <iostream>
#include<bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <vector>
#define M 666013
using namespace std;
ifstream fin("abc2.in");
ofstream fout("abc2.out");
vector <int> h[M + 1];
char s[10000001], cuv[50001];
int v[25];//puterile lui 3
int caut(int x){
int y = x % M, i;
for(i = 0; i < h[y].size(); ++i){
if(h[y][i] == x) return 1;
}
return 0;
}
int main()
{
int n, n1, aux, i, nr = 0;
fin>>s;
n = strlen(s);
v[0] = 1;
for(i = 1; i <= 19; i++)
v[i] = v[i - 1] * 3;
while(fin>>cuv){
n1 = strlen(cuv);
aux = 0;
for(i = 0; i < n1; ++i){
aux += v[i] * (cuv[i] - 'a');
}
h[aux % M].push_back(aux);
}
aux = 0;
for(i = 0; i < n1; ++i){
aux += v[i] * (cuv[i] - 'a');
}
nr += caut(aux);
for(i = 1; i < n; i++){
aux /= 3;
aux += v[n - 1] * (s[i] - 'a');
nr += caut(aux);
}
fout<<nr;
return 0;
}