Cod sursa(job #1163556)

Utilizator ovidiu95Decean Ovidiu Ciprian ovidiu95 Data 1 aprilie 2014 14:25:29
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define NMAX 2000010

using namespace std;
char A[NMAX],B[NMAX];
int i,L,m,k,r,p[NMAX],x,y;
int main()
{
    freopen("strmatch.in","r",stdin);
    freopen("strmatch.out","w",stdout);
    scanf("%s\n%s\n",A,B);
    x=strlen(A); y=strlen(B);
    for(i=0;i<y;++i) p[i]=i;
    k=-1;
    m=y;
    for(L=0;L<x;++L)
    {
        for(i=0;i<m;++i)
        {
            if(L+p[i]>y) break;
            if(B[L+p[i]]==A[L])
                p[++k]=p[i];
        }
        m=k+1;k=-1;
    }
    printf("%d\n",m);
    r=min(m,1000);
    for(i=0;i<r;++i) printf("%d ",p[i]);
    return 0;
}