Pagini recente » Cod sursa (job #606808) | Cod sursa (job #2586391) | Cod sursa (job #1868523) | Cod sursa (job #2367827) | Cod sursa (job #1903143)
#include <fstream>
#include <string>
#include <vector>
using namespace std;
vector <int> x;
string a, b;
int i, q;
void read()
{
ifstream f("strmatch.in");
f >> a >> b;
f.close();
}
void write()
{
ofstream f("strmatch.out");
f << q << '\n';
q = min(q, 1000);
for (int i = 0; i < q; i++)
f << x[i] << ' ';
f.close();
}
bool verifica(int x)
{
for (int i = 1; x+i-1 <= b.size() && i < a.size(); i++)
if (a[i-1] != b[x+i-1]) return false;
return true;
}
int main()
{
read();
for (i = 0; i + a.size() <= b.size() && i < b.size() && x.size() < 1000; i++)
if (a[0] == b[i] && a[a.size() -1] == b[i - 1 + a.size()] && verifica(i))
x.push_back(i);
q = x.size();
for (i; i + a.size() <= b.size() && i < b.size(); i++)
if (a[0] == b[i] && a[a.size() -1] == b[i - 1 + a.size()] && verifica(i))
q++;
write();
return 0;
}