Pagini recente » Cod sursa (job #912714) | Cod sursa (job #1695025) | Cod sursa (job #349129) | Cod sursa (job #2713843) | Cod sursa (job #2709262)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
#include <deque>
#include <unordered_set>
#include <unordered_map>
#include <bitset>
#include <climits>
#include <queue>
#define MOD 666013
using namespace std;
ifstream cin("strmatch.in") ;
ofstream cout("strmatch.out") ;
vector<int> v ;
int process(string a)
{
int k = 0 ;
for(int f = 0 ; f < a.size() ; f ++)
{
/// dau match la primele f caract si ultimele f caract
string st = a.substr(0, f) ;
string dr = a.substr(a.size() - f, a.size()) ;
if(st == dr)k = a.size() - f ;
}
return k ;
}
int main()
{
string a, b ;
cin >> a >> b ;
int k = process(a) ;
char *ptr = &b[0], *auxptr ;
while(auxptr = strstr(ptr, &a[0]))
{
v.push_back(auxptr - &b[0]) ;
ptr = auxptr + k ;
}
cout << v.size() << endl ;
for(int f = 0 ; f < v.size() && f < 1000 ; f ++)
cout << v[f] << " " ;
return 0 ;
}