Pagini recente » Cod sursa (job #1271231) | Cod sursa (job #1107428) | Cod sursa (job #2293956) | Cod sursa (job #2277896) | Cod sursa (job #2836094)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
vector<int>pf(string s)
{
vector<int>pi;
pi.push_back(0);
for(int i=1;i<s.size();i++)
{
int j=pi[i-1];
while(j>0&&s[j]!=s[i])
j=pi[j-1];
if(s[i]==s[j])
j++;
pi.push_back(j);
}
return pi;
}
vector<int>v,rez;
int main()
{
string a,b;
int nr=0;
fin>>a>>b;
string s=a+'#'+b;
vector<int>v=pf(s);
int l=a.size();
for(int i=l;i<v.size();i++)
if(v[i]==l)
{
nr++;
rez.push_back(i-l-l);
}
fout<<rez.size()<<"\n";
for(int i=0;i<min((int)rez.size(),1000);i++)
fout<<rez[i]<<" ";
}