Pagini recente » Cod sursa (job #422891) | Cod sursa (job #1282524) | Cod sursa (job #2649353) | Cod sursa (job #10264) | Cod sursa (job #2457991)
#include <fstream>
#include <vector>
using namespace std;
string a, b;
ifstream cin("strmatch.in");
ofstream cout("strmatch.out");
long long int sub = 0;
int pos[1000], p = 0;
int main(){
cin>>a>>b;
if(a.size() == 1){
for(int x = 0;x<b.size();x++){
if(b[x] == a[0]){
sub++;
if(p < 1000)
pos[p++] = x + 1;
}
}
}else
for(int x = 0, y = 0, l = b.size(), sz = a.size();x<l;x++){
if(b[x] == a[y]){
y++;
if(y == sz){
sub++;
if(p < 1000)
pos[p++] = x - sz + 2;
}else continue;
}
if(b[x] == a[0]){
y = 1;
}else y = 0;
}
cout<<sub<<'\n';
for(int x = 0;x<p;x++){
cout<<pos[x]<<' ';
}
return 0;
}