Cod sursa(job #3146429)

Utilizator nnmadalinNeauna Madalin nnmadalin Data 20 august 2023 23:39:41
Problema Potrivirea sirurilor Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.14 kb
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define tie_ion_base cin.tie(NULL);ios_base::sync_with_stdio(false);

#define int long long 

#define cin fin
#define cout fout

const string FILE_NAME = "strmatch";
ifstream fin(FILE_NAME + ".in");
ofstream fout(FILE_NAME + ".out");

signed main()
{
    tie_ion_base;

    string a, b;
    int p = 0, maxim = 0;
    vector <int> v;

    cin >> a >> b;

    for(int i = 0; i < b.size(); i++){
        if(b[i] != a[p])
            p = 0, maxim = 0;
        if(p >= a.size())
            p = 0, maxim = 0;
        if(b[i] == a[p]){
            p++;
            maxim++;
            //cout << i << " " << p << " " << maxim << "\n";
            if(maxim == a.size()){
                v.push_back(i - a.size() + 1);
                if(v.size() == 1000)
                    break;
                maxim = 0;
                p = 0;
                i = i - a.size() + 1;
            }
        }
    }

    cout << v.size() << "\n";
    for(int i = 0; i < v.size() && i < 1000; i++){
        cout << v[i] << " ";
    }

    return 0;
}