Pagini recente » Cod sursa (job #181981) | Borderou de evaluare (job #1569013) | Cod sursa (job #233408) | Cod sursa (job #20128) | Cod sursa (job #2085010)
#include <fstream>
#include <string.h>
using namespace std;
ifstream fi("strmatch.in");
ofstream fo("strmatch.out");
char P[2000002],T[2000002];
int lp,lt;
int nrap,k,i,t;
int main()
{
fi.getline(P,2000002);
fi.getline(T,2000002);
lp=strlen(P);
lt=strlen(T);
nrap=0;
for (int k=0;k<lt-lp+1;k++)
{
t=1;
for (int i=0;i<lp;i++)
if (P[i]!=T[k+i])
{
t=0;
break;
}
if (t==1)
nrap++;
}
fo<<nrap<<"\n";
for (int k=0;k<lt-lp+1;k++)
{
t=1;
for (int i=0;i<lp;i++)
if (P[i]!=T[k+i])
{
t=0;
break;
}
if (t==1)
fo<<k<<" ";
}
fi.close();
fo.close();
return 0;
}