Pagini recente » Cod sursa (job #1145888) | Cod sursa (job #917488) | Cod sursa (job #2465032) | Cod sursa (job #1071851) | Cod sursa (job #2495585)
#include <fstream>
#include <string>
#include <vector>
#define Nmax 2000001
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
string s,t;
int stare[Nmax],nr;
vector <int> v;
int main()
{
fin>>s>>t;
int st=0,i,x=s.size();
for (i=2;i<=x;i++)
{
while (st>0 && s[st]!=s[i-1])
st=stare[st];
if (s[st]==s[i-1]){
st++;
}
stare[i]=st;
}
int x1=t.size();
st=0;
for (i=2;i<=x1;i++){
while (st>0 && s[st]!=t[i-1])
st=stare[st];
if (s[st]==t[i-1]){
st++;
}
if (st==x)
{
nr++;
v.push_back(i-st);
}
}
fout<<nr<<"\n";
nr=0;
for (auto i:v)
{
fout<<i<<" ";
nr++;
if (nr==1000)
break;
}
return 0;
}