Cod sursa(job #3321084)

Utilizator mbazacliuMihnea Gabriel Bazacliu mbazacliu Data 8 noiembrie 2025 10:24:39
Problema Potrivirea sirurilor Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <fstream>
using namespace std;

ifstream cin  ("strmatch.in");
ifstream cout ("strmatch.out");

char s[2000000], t[2000000];
int lps[2000000];

int main(){
    cin >> s >> t;

    for (int l = 0, i = 1; s[i]; i++){
        if (s[l] == s[i]){
            l++;
            lps[i] = l;
        } else if (l){
            l = lps[l - 1];
            i--;
        } else lps[i] = 0;
    }

    int a = 0, x[1000];
    for (int l = 0, i = 0; t[i]; i++){
        if (t[i] == s[l]){
            l++;
            if (!s[l]){
                if (a < 1000) x[a] = i - l + 1;
                a++;
            }
        } else if (l){
            l = lps[l - 1];
            i--;
        }
    }

    cout << a << '\n';
    for (int i = 0; i < a && i < 1000; i++) cout << x[i] << ' ';
}