Pagini recente » Cod sursa (job #1945992) | Cod sursa (job #1739128) | Cod sursa (job #2256501) | Cod sursa (job #1130029) | Cod sursa (job #1536922)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
using namespace std;
vector<string> tabel[23879];
int main()
{
ifstream in("abc2.in");
ofstream out("abc2.out");
string s, x, d;
int total = 0, c,i;
in >> s;
while (!in.eof())
{
in >> x;
c = (7919 * (x[x.size() - 1] - 'a') + 1381 * (x[1] - 'a') + x[2] - 'a') % 23879;
tabel[c].push_back(x);
sort(tabel[c].begin(), tabel[c].end());
}
d = s.substr(0, x.length());
c = (7919 * (d[d.size() - 1] - 'a') + 1381 * (d[1] - 'a') + d[2] - 'a') % 23879;
if (binary_search(tabel[c].begin(),tabel[c].end(), d)){ total++; }
for (i = x.length(); i < s.size(); i++)
{
d.push_back(s[i]);
d.erase(d.begin());
c = (7919 * (d[d.size() - 1] - 'a') + 1381 * (d[1] - 'a') + d[2] - 'a') % 23879;
if (binary_search(tabel[c].begin(), tabel[c].end(), d)){ total++; }
}
out << total;
}