Cod sursa(job #1914513)

Utilizator medicinedoctoralexandru medicinedoctor Data 8 martie 2017 17:17:37
Problema Potrivirea sirurilor Scor 38
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <vector>

using namespace std;

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

string a, b;
vector <int> x;

bool f(int x)
{
    for (int i = 1; x + i < b.size() && i < a.size(); i++)
        if (a[i] != b[x + i]) return false;
    return true;
}

int main()
{
    cin >> a >> b;

    for (int i = 0; i + a.size() < b.size(); i++)
    {
        if (a[0] == b[i] && a[a.size() - 1] == b[i + a.size() -1] && f(i))
            x.push_back(i);
    }

    int q = x.size();
    q = min(1000, q);
    cout << x.size() << '\n';
    for (int i = 0; i < q; i++)
        cout << x[i] << ' ';

    return 0;
}