Cod sursa(job #2738843)

Utilizator BuzatuCalinBuzatu Calin BuzatuCalin Data 6 aprilie 2021 14:04:43
Problema Potrivirea sirurilor Scor 16
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
string A,B;
#define DIM 1008
int n,m,l_max,cons,rasp,nr_indici;
int indici[DIM];
int matrice[DIM][DIM];
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
void lungcom()
{
    for(int i=0;i<=n;i++)
    {
        for(int j=0;j<=m;j++)
        {
            if( i==0 || j==0)
            {
                matrice[i][j]=0;
            }
            else if(A[i-1]==B[j-1])
            {
                matrice[i][j]=matrice[i-1][j-1]+1;
                rasp=max(rasp,matrice[i][j]);
                if(rasp==n)
                {
                    indici[nr_indici++]=j-rasp;
                }
            }
            else
            {
                matrice[i][j]=0;
            }
        }
    }
}
int main()
{
    fin>>A>>B;
    n=A.length(),m=B.length();
    lungcom();
    fout<<nr_indici<<'\n';
    for(int i=0;i<nr_indici && i<1000;i++)
    {
        fout<<indici[i]<<" ";
    }
}