Pagini recente » Diferente pentru runda/simulare_oni9 intre reviziile 2 si 3 | Diferente pentru probleme-de-acoperire-2 intre reviziile 35 si 36 | Cod sursa (job #1881039) | Cod sursa (job #1913226) | Cod sursa (job #2338026)
#include <queue>
#include <fstream>
#include <cstring>
#define lim 1000
#define len 2000001
#define date "strmatch.in"
#define rezultate "strmatch.out"
using namespace std;
typedef unsigned int uint;
ifstream in(date);
ofstream out(rezultate);
queue<uint> q;
char A[len], B[len];
uint pos, count;
int main()
{
in >> A >> B;
while(true)
{
char *p = strstr(B + pos, A);
if(!p)
break;
pos = p - B + 1;
++count;
if(count <= lim)
q.push(p - B);
}
out << count << '\n';
while(!q.empty())
{
out << q.front() << ' ';
q.pop();
}
return 0;
}