Cod sursa(job #2106856)

Utilizator octavian.sndOctavian Sandu octavian.snd Data 16 ianuarie 2018 12:40:05
Problema Potrivirea sirurilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
char A[2000005], B[2000005], *p;
int n, x, v[50];

int main()
{
    f.get(A,100);
    f.get();
    f.get(B,100);
    if(B[0]==B[strlen(B)-1]) x=1;
    int k=0, q=0;
    p=strstr(A, B);
    while(p)
    {
        k++;
        n=p-A;
        if(q==0) v[++q]=n;
        else v[++q]=n+(strlen(B)-x)*(q-1);
        strcpy(A+n, A+n+strlen(B)-x);
        p=strstr(A, B);
    }
    g<<k<<endl;
    for(int i=1;i<=q || i<=1000;i++) g<<v[i]<<" ";
    return 0;
}