Cod sursa(job #2189522)

Utilizator adc98Adam Cristian adc98 Data 28 martie 2018 15:43:14
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <cstring>

using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");

char n[2000001],p[2000001];
int poz[1001],nrElemente;

void verificareSubsecventa()
{
    int nrelemn=strlen(n);
    int nrelemp=strlen(p);
    int contor=0;
    for(int i=0;i<=nrelemn-nrelemp;++i)
        {
         if(n[i]==p[0])
            {
             int j=1;
             while(n[i+j]==p[j] && j<nrelemp) j++;
             if(j==nrelemp)
                {
                 contor++;
                 poz[nrElemente++]=i;
                }
            }
        }
    fout<<contor<<"\n";
    for(int i=0;i<nrElemente;++i) fout<<poz[i]<<" ";
}

int main()
{
    fin.getline(p,2000001);
    fin.getline(n,2000001);
    verificareSubsecventa();
    return 0;
}