Pagini recente » Cod sursa (job #486708) | Cod sursa (job #2911243) | Cod sursa (job #2936019) | Cod sursa (job #1853774) | Cod sursa (job #1042909)
#include<fstream>
#define numaru 2000002
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
unsigned int poz[numaru],n,r,rr[numaru];
char a[numaru],b[numaru];
int main()
{
f.getline(a,numaru+1);
f.getline(b,numaru+1);
unsigned int i,j,lb,la;
for(la=0;a[la]!='\0';++la);
for(i=0;b[i]!='\0';++i) if(b[i]==a[0]) poz[n++]=i;
lb=i;
for(i=0;i<n;++i)
if(poz[i]<=lb-la)
{
for(j=poz[i];b[j]==a[j-poz[i]] && a[j-poz[i]]!='\0';++j);
if(j-poz[i]==la)rr[r++]=poz[i];
}
g<<r<<"\n";
if(r>1000)r=1000;
for(i=0;i<r;++i) g<<rr[i]<<" ";
g<<"\n";
f.close();
g.close();
return 0;
}