Pagini recente » Monitorul de evaluare | Cod sursa (job #1547806) | Monitorul de evaluare | Cod sursa (job #1755354) | Cod sursa (job #1579658)
// Problema Strmatch - InofArena ( www.infoarena.ro/problema/strmatch )
#include <cstdio>
#include <string>
#include <unordered_map>
#include <fstream>
#include <vector>
#define in "strmatch.in"
#define out "strmatch.out"
#define len 2000007
#define pb push_back
using namespace std;
ifstream cin(in);
ofstream cout(out);
int sze1, sze2, sze;
string str1, str2, tmp;
unordered_map <string, vector <int> > RabinKarp;
int main()
{
cin >> str1 >> str2;
sze1 = str1.size();
sze2 = str2.size();
for(int i = 0 ; i< sze2 - sze1 + 1; ++i)
{
tmp.replace(0, len, str2, i, sze1);
RabinKarp[tmp].pb(i);
}
sze = RabinKarp[str1].size();
cout << sze << "\n";
for(int i = 0; i< sze; ++i)
{
cout << RabinKarp[str1][i] << " ";
}
cout << "\n";
}