Cod sursa(job #2695870)

Utilizator AndreibatmanAndrei Croitoriu Andreibatman Data 14 ianuarie 2021 19:03:00
Problema Potrivirea sirurilor Scor 14
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 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;
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++)
    {
        t1[pozitiea++]=a[i];
        t2[pozitieb++]=a[l1-i-1];
        reverse(t2.begin(),t2.end());
        if(t1==t2)
            pozitie=i+1;
        else break;
        reverse(t2.begin(),t2.end());
    }
    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;
}