Cod sursa(job #3308903)

Utilizator anca.gdDumitru Anca Gabriela anca.gd Data 29 august 2025 21:03:45
Problema Potrivirea sirurilor Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <string>
#include <vector>
using namespace std;
ifstream cin("strmatch.in");
ofstream cout("strmatch.out");
string s,a,b;
int p[4000005], indx;
vector<int> sol;
int main()
{
    cin>>a>>b;
    int n=a.size();
    s='*'+a+'&'+b;
    int m=s.size()-1;
    for(int i=2; i<=m;i++){
        int aux=p[i-1];
        while(aux && s[aux+1]!=s[i])
            aux=p[aux];
        p[i]=aux;
        if(s[aux+1]==s[i])
            p[i]++;
        if(p[i]==n) indx++;
        if(p[i]==n && indx<=1000)
            sol.push_back(i-2*n-1);
    }
    cout<<indx<<'\n';
    for(auto x: sol)
        cout<<x<<' ';
    return 0;
}