Cod sursa(job #236915)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 28 decembrie 2008 18:48:11
Problema Potrivirea sirurilor Scor 18
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<stdio.h>
#include<string.h>

char A[2000005],B[2000006];
int n,nr,m;
int a[1000001];

void citire()
{
    fgets(A,2000001,stdin);
    m=strlen(A)-1;
    if(A[m]=='\n')
       {A[m]='\0';
        m--;
       }
    fgets(B,2000001,stdin);
    n=strlen(B)-1;
    if(B[n]=='\n')
       {B[n]='\0';
        n--;
       }
}

void solve()
{
    char *p=strstr(B,A);
    while(p)
     {nr++;
      a[nr]=n-strlen(p)+1;
      p=strstr(p+m,A);
     }
}

void afis()
{
    printf("%d\n",nr);
    for(int i=1;i<=nr;i++)
      printf("%d ",a[i]);
}

int main()
{
    freopen("strmatch.in","r",stdin);
    freopen("strmatch.out","w",stdout);
    citire();
    solve();
    afis();
    return 0;
}