Cod sursa(job #1914601)

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

using namespace std;

vector <int> x;
string a, b;

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

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

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

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

    cout << x.size() << '\n';
    int  q = x.size();
    q = min(1000, q);

    for (int i = 0; i < q; i++)
        cout << x[i] << ' ';

    return 0;
}