Cod sursa(job #2909990)

Utilizator mariusn01Marius Nicoli mariusn01 Data 17 iunie 2022 14:29:49
Problema Potrivirea sirurilor Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>
#include <cstring>
#define DIM 2000000
using namespace std;
char A[DIM+2], B[DIM+2];
int sol[1001];
int a, b, ok, i, nr;
int main () {
    ifstream fin("strmatch.in");
    ofstream fout("strmatch.out");
    fin>>A+1; /// se ia primul rand din fisier si se pune in vectorul A incepand cu pozitia 1
    fin>>B+1;
    a = strlen(A+1);
    b = strlen(B+1);
    /// de aici inainte am doi vectori cu elemente de tip char
    /// A cu a elemente si B cu b elemente
    for (i=1;i+a-1<=b;i++) {
        /// vedem daca apare sirul A in sirul B incepand cu pozitia i ca secventa
        ok = 1;
        for (int ia = 1, ib = i; ia<=a; ia++, ib++) {
            if (A[ia] != B[ib]) {
                ok = 0;
                break;
            }
        }
        if (ok == 1) {
            nr++;
            if (nr <= 1000)
                sol[nr] = i-1;
        }
    }
    fout<<nr<<"\n";
    for (i=1;i<=min(nr, 1000); i++)
        fout<<sol[i]<<" ";
}