Cod sursa(job #2761382)

Utilizator lahayonTester lahayon Data 1 iulie 2021 23:51:39
Problema Potrivirea sirurilor Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <map>

using namespace std;


int main(){


    ifstream cin("strmatch.in");
    ofstream cout("strmatch.out");

    string A, B;

    cin >> A >> B;

    map<string, vector<int>> hashtable;
    map<string, vector<int>>::iterator it;

    string curr;
    for(int i = 0; i < B.size(); ++i){

        curr += B[i];
        if(i >= A.length())
            curr.erase(0, 1);
        hashtable[curr].push_back(i - A.length() + 1);
    }

    int N;
    if(hashtable[A].size() > 1000)
        N = 1000;
    else N = hashtable[A].size();

    cout << hashtable[A].size() << "\n";

    for(int i = 0; i < N; ++i)
        cout << hashtable[A][i] << " ";

    cin.close();
    cout.close();

  return 0;
}