Cod sursa(job #870633)

Utilizator Athena99Anghel Anca Athena99 Data 3 februarie 2013 19:05:47
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <cassert>
#include <cstdio>
#include <cstring>

const int d1=2000002,d2=1002;
int p[d1],s[d2],sol=0,i=0,n=0,m=0;
char c1[d1],v1[d1];
char *c,*v,*r;

void read()
{
    assert(scanf("%s",&c1));
    assert(scanf("%s",&v1));
    c=c1;v=v1;r=v;
    n=strlen(v1);
}

void write()
{
    if (sol>1000)
        sol=1000;
    assert(printf("%d\n",sol));
    for (i=1; i<=sol; ++i)
        assert(printf("%d ",s[i]));
}

int main()
{
    assert(freopen("strmatch.in","r",stdin));
    assert(freopen("strmatch.out","w",stdout));
    read();

    while ((r=strstr(r,c))!=NULL)
    {
        m=strlen(r);
        s[++sol]=n-m;
        ++r;
    }

    write();
    return 0;
}