Pagini recente » Cod sursa (job #3126663) | Cod sursa (job #860359) | Cod sursa (job #2270511) | Cod sursa (job #1614210) | Cod sursa (job #2719518)
#include <bits/stdc++.h>
using namespace std;
ifstream fcin("strmatch.in");
ofstream fcout("strmatch.out");
char A[2000000],B[2000000];
int sol[1000],nr;
bool verif(int poz)
{
for(int i=0;i<strlen(A);i++)
if(A[i]!=B[poz+i]){
// cout<<" "<<i<<": "<<A[i]<<" != "<<B[poz+1]<<endl;
return 0;
}
return 1;
}
void solve1()
{
for(int i=0;i<strlen(B)-strlen(A);i++)
if(verif(i)){
nr++;
if(nr<=1000)
sol[nr]=i;
}
}
void afis(char x[])
{
cout<<endl;
for(int i=0;i<strlen(x);i++)
cout<<i<<' ';
cout<<endl;
for(int i=0;i<strlen(x);i++)
cout<<x[i]<<' ';
cout<<endl;
}
int main()
{
fcin.getline(A,100000);
fcin.getline(B,100000);
// fcin>>A;fcin.get();
// fcin>>B;fcin.get();
// afis(A);
// afis(B);
if(strlen(A)==strlen(B)){
if(strcmp(A,B)==0)
cout<<1<<endl<<0<<' ';
else
cout<<0;
return 0;
}
if(strlen(A)>strlen(B)){
cout<<0;
return 0;
}
solve1();
fcout<<nr<<endl;
for(int i=1;i<=nr && i<=1000;i++)
fcout<<sol[i]<<' ';
return 0;
}