Pagini recente » Cod sursa (job #1637790) | Cod sursa (job #877942) | Cod sursa (job #2173825) | Cod sursa (job #67592) | Cod sursa (job #1712441)
#include <fstream>
#include <string>
using namespace std;
string a,b;
int q,i,x[2000000];
void lire()
{
ifstream f("strmatch.in");
f >> a >> b;
f.close();
}
void ecrire()
{
ofstream f("strmatch.out");
f << q << endl;
if (q>1000) q=1000;
for (int i=1; i<=q; i++)
f << x[i] << ' ' ;
f.close();
}
bool verifica(int x)
{
bool q=true;
int i=2;
while (i<a.length())
{
if ((x+i-1<=b.length()) && (a[i-1]!=b[x+i-2])) { q=false; break; }
i++;
}
return q;
}
int main()
{
lire();
q=0;
for (int i=1; i<=b.length(); i++)
if ((i-2+a.length()<=b.length()) && (a[0]==b[i-1]) && (a[a.length()-1]==b[i-2+a.length()]) && verifica(i) ) { q++; x[q]=i-1; }
ecrire();
}