Pagini recente » Cod sursa (job #2377224) | Cod sursa (job #39268) | Cod sursa (job #2403826) | Cod sursa (job #1538475) | Cod sursa (job #2738816)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
string A,B;
#define DIM 1001
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();
if(n>m)
{
swap(A,B);
}
lungcom();
fout<<nr_indici<<'\n';
for(int i=0;i<nr_indici;i++)
{
fout<<indici[i]<<" ";
}
}