Cod sursa(job #2418966)

Utilizator dan.ghitaDan Ghita dan.ghita Data 7 mai 2019 08:25:21
Problema Potrivirea sirurilor Scor 14
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#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;
}