Pagini recente » Cod sursa (job #30131) | Cod sursa (job #2493844) | Cod sursa (job #1738392) | Cod sursa (job #3162308) | Cod sursa (job #2418966)
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
int main()
{
string s, p;
f >> p >> s;
vector<int> pref(p.size(), 0);
int i = 0, j = 1;
while (j < p.size())
if (p[i] == p[j])
pref[j] = i + 1,
++i, ++j;
else if (i == 0)
++j;
else
i = pref[i - 1];
i = 0, j = 0;
while (j < p.size() && i < s.size())
if (s[i] == p[j])
++i, ++j;
else if (j == 0)
++i;
else
j = pref[j - 1];
g << (j == p.size());
return 0;
}