Pagini recente » Cod sursa (job #1829817) | Cod sursa (job #115100) | Cod sursa (job #2873108) | Cod sursa (job #838578) | Cod sursa (job #1940801)
#include<vector>
#include<fstream>
#define har 967765
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
char c,a[2000002],b[2000002];
int m,n, sol ,ok, p[2000002],i;
int main()
{
while(fin.get(c)&&c!='\n')
{
a[++m]=c;
}
while(fin.get(c))
{
b[++n]=c;
}
n--;
for(i=1;i<=n;i++)
{
while(ok!=0&&b[i]!=a[ok+1])
ok=p[ok];
if(b[i]==a[ok+1])
ok++;
p[i]=ok;
if(ok==m)
sol++;
}
fout<<sol<<"\n";
for(i=1;i<=n;i++)
if(p[i]==m)
fout<<i-m<<" ";
fin.close();
fout.close();
return 0;
}