Pagini recente » Cod sursa (job #2090619) | Cod sursa (job #2888234) | Cod sursa (job #3282180) | Cod sursa (job #2845592) | Cod sursa (job #2982258)
#include <fstream>
#include <cstring>
using namespace std;
ifstream cin("strmatch.in");
ofstream cout ("strmatch.out");
//int p[4000002],j=0;
int p[100],j;
int main()
{
char c[4000002];
cin.get(c+1,4000002);
int n=strlen(c+1),cn=n;
c[n+1]='#';
n++;
while(cin>>c[n])
{
n++;
}
n--;
//// */
/*
for(int i=1;i<=n;i++)
{
cout<<c[i];
}
*/
for(int i=2;i<=n;i++)
{
p[i]=p[i-1];
while(c[i]!=c[p[i]+1] && p[p[i]]!=0)
{
p[i]=p[p[i]];
}
if(c[p[i]+1]==c[i])
{
p[i]++;
}
else
{
p[i]=0;
}
if(p[i]==cn)
{
cout<<i-2*cn<<" ";
}
}
/*
for(int i=1;i<=n;i++)
{
cout<<p[i]<<" ";
}
*/
return 0;
}