Cod sursa(job #3162622)

Utilizator AnSeDraAndrei Sebastian Dragulescu AnSeDra Data 29 octombrie 2023 15:47:18
Problema Potrivirea sirurilor Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <string>
#include <unordered_map>
#include <vector>

using namespace std;

const int Imax = 1000;

unordered_map<string, int> mp;

string a, b, aux;
vector<int> poz;

int main(){
    ifstream fin("strmatch.in");
    ofstream fout("strmatch.out");

    int k;

    fin >> a >> b;

    k = a.size();
    for(int i = 0; i < k - 1; i++){
        aux.push_back(b[i]);
    }

    for(unsigned int i = k - 1; i < b.size(); i++){
        aux.push_back(b[i]);

        mp[aux]++;
        if(aux == a){
            poz.push_back(i - k + 1);
        }

        aux.erase(aux.begin());
    }

    fout << mp[a] << '\n';
    for(unsigned int i = 0; i < poz.size() && i < Imax; i++){
        fout << poz[i] << " ";
    }

    return 0;
}