Cod sursa(job #2579331)

Utilizator KPP17Popescu Paul KPP17 Data 12 martie 2020 12:59:00
Problema Potrivirea sirurilor Scor 18
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1 kb
/// rezolvare in cazul in care nu sunt una peste alta

#define fisier "strmatch"

#ifdef consola

    #include <iostream>
    #define in std::cin
    #define out std::cout

#else

    #include <fstream>

    #ifndef fisier
        #define fisier "HYPER"
    #endif

    std::ifstream in(fisier ".in");
    std::ofstream out(fisier ".out");

#endif



const int MAX_SIR = 2000001;

char a[MAX_SIR], b[MAX_SIR];

int j, nr_sol, sol[MAX_SIR];



bool verif_subsecv() { /// de la i incolo

    int i = 0;

    while (a[i] == b[j])
        i++, j++;

    return !a[i];

}



int main() {

    in >> a >> b;

    while (b[j]) {

        int vechi_j = j;

        if (*a != b[j]) {

            j++;
            continue;

        }

        if (verif_subsecv()) {

            sol[nr_sol++] = vechi_j;

        }

    }



    out << nr_sol << '\n';

    for (j = 0; j < nr_sol; j++) {

        out << sol[j] << ' ';

    }

}












//