Pagini recente » Cod sursa (job #2612823) | Cod sursa (job #175186) | Cod sursa (job #2817597) | Cod sursa (job #699722) | Cod sursa (job #1042882)
#include<fstream>
#define numaru 2000000
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;
}