Cod sursa(job #2697998)

Utilizator AndreibatmanAndrei Croitoriu Andreibatman Data 20 ianuarie 2021 17:06:19
Problema Potrivirea sirurilor Scor 14
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.07 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
string a,b,t1,t2;
int poz,i,pozitiea,pozitieb,pozitie,l1,l2,numar,ok,j;
int v[1010];
int main()
{
    fin>>a>>b;
    l1=a.size();
    l2=b.size();
    if(l1>l2)
    {
        fout<<0;
        return 0;
    }
    poz=0;
    for(i=0;i<l1/2;i++)
    {
        if(a[i]==a[l1-1])
        {
            poz=l1-1;
            ok=1;
            for(j=i;j>=0;j--)
                if(a[j]!=a[l1-1-(i-j)])
                {
                    ok=0;
                    break;
                }
            if(ok==0)
                break;
            pozitie=i+1;
        }
    }
    for(i=0;i<l2;i++)
    {
        if(b[i]==a[poz])
            poz++;
        else poz=0;
        if(poz==l1)
        {
            poz=pozitie;
            numar++;
            if(numar<=1000)
                v[numar]=i-l1+1;
        }
    }
    fout<<numar<<'\n';
    numar=min(numar,1000);
    for(i=1;i<=numar;i++)
        fout<<v[i]<<" ";
    return 0;
}