Cod sursa(job #1774067)

Utilizator MihaiFilipoiuMihai Filipoiu MihaiFilipoiu Data 8 octombrie 2016 15:22:52
Problema Potrivirea sirurilor Scor 36
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
//Se dau doua siruri A si B formate din litere mici si mari ale alfabetului englez si din cifre. Se cere gasirea tuturor aparitiilor sirului A ca subsecventa a sirului B.
#include <iostream>
#include <fstream>
#include <string.h>
char x[2000000],y[2000000];
long int kx,ky,g,gasiri,pozitii[200];

using namespace std;

int main()
{

    ifstream a("strmatch.in");
    ofstream b("strmatch.out");
    a.getline(x,2000000);
    a.getline(y,2000000);
    ky=strlen(y);
    kx=strlen(x);
    gasiri=0;
    for(int i=0;i<(ky-kx);i++)
    {
        g=0;
        for(int j=0;j<kx;j++)
        {
            if(x[j]==y[i+j])
                g+=1;
        }
        if(g==kx)
        {
            gasiri+=1;
            pozitii[gasiri]=i;
        }
    }
    b<<gasiri<<"\n";
    for(int i=1;i<=gasiri;i++)
        b<<pozitii[i]<<' ';
}