Cod sursa(job #3176625)

Utilizator bostanlucastefanBostan Luca-Stefan bostanlucastefan Data 27 noiembrie 2023 14:10:06
Problema Potrivirea sirurilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb

#include <bits/stdc++.h>

using namespace std;

ifstream fin("strmatch.in");
ofstream fout(" strmatch.out");

vector <int> rezultat;

int pi[1000];

int main()
{
    string s,t,tot;
    fin>>t>>s;
    tot=t+"#"+s;
    
    int rez=0;
    for(int i=1; i<=tot.size() ;i++)
    {
        int j=pi[i-1];
        while(j>0 && tot[i]!=tot[j])
            j=pi[j-1];
        if(tot[i]==tot[j])
            j++;
        pi[i]=j;
        if(i>t.size() && j == t.size())
        {
            rez++;
            rezultat.push_back(i);
        }
    }
    fout<<rez<<"\n";
    for(auto i:rezultat)
    fout<<i- 2*t.size()<<" ";
   
}