Pagini recente » Cod sursa (job #2883841) | Cod sursa (job #477483) | Cod sursa (job #174862) | Cod sursa (job #2954607) | Cod sursa (job #3162630)
#include <fstream>
#include <string>
#include <vector>
using namespace std;
const int Imax = 1000;
string a, b, aux;
vector<int> poz;
int main(){
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
int k, cnt;
fin >> a >> b;
if(a.size() == b.size()){
if(a == b){
fout << 1 << '\n' << 1;
}
else{
fout << 0;
}
}
else{
k = a.size();
for(int i = 0; i < k - 1; i++){
aux.push_back(b[i]);
}
cnt = 0;
for(unsigned int i = k - 1; i < b.size(); i++){
aux.push_back(b[i]);
if(aux == a){
cnt++;
if(poz.size() < Imax){
poz.push_back(i - k + 1);
}
}
aux.erase(aux.begin());
}
fout << cnt << '\n';
for(unsigned int i = 0; i < poz.size(); i++){
fout << poz[i] << " ";
}
}
return 0;
}