Pagini recente » Cod sursa (job #915796) | Cod sursa (job #927822) | Cod sursa (job #915823) | Cod sursa (job #1969422) | Cod sursa (job #2189522)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
char n[2000001],p[2000001];
int poz[1001],nrElemente;
void verificareSubsecventa()
{
int nrelemn=strlen(n);
int nrelemp=strlen(p);
int contor=0;
for(int i=0;i<=nrelemn-nrelemp;++i)
{
if(n[i]==p[0])
{
int j=1;
while(n[i+j]==p[j] && j<nrelemp) j++;
if(j==nrelemp)
{
contor++;
poz[nrElemente++]=i;
}
}
}
fout<<contor<<"\n";
for(int i=0;i<nrElemente;++i) fout<<poz[i]<<" ";
}
int main()
{
fin.getline(p,2000001);
fin.getline(n,2000001);
verificareSubsecventa();
return 0;
}