Cod sursa(job #3292235)

Utilizator mihaigeorgescuGeorgescu Mihai mihaigeorgescu Data 7 aprilie 2025 17:43:02
Problema Potrivirea sirurilor Scor 18
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <cstring>
#include <vector>
using namespace std;
ifstream fcin("strmatch.in");
ofstream fout("strmatch.out");
string a,b;
int lps[2500000];
vector <int> rez;
int main()
{
    fcin>>a>>b;
    int i=1, j=0;
    while(i<b.size())
    {
        if(a[j]==b[i]) j++, lps[i]=j, i++;
        else if (j!=0) j=lps[j-1]; else i++;
        if(j==a.size()) rez.push_back(i-a.size());
    }
    fout<<rez.size()<<'\n';
    for(int i=0; i<min((int)rez.size(), 1000); i++)
        fout<<rez[i]<<" ";
    return 0;
}