Cod sursa(job #2639604)

Utilizator Casian_doispeChiriac Casian Casian_doispe Data 3 august 2020 07:59:34
Problema Potrivirea sirurilor Scor 28
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <cstring>
#include <bitset>
#include <vector>
#include <deque>
#include <algorithm>

using namespace std;

ifstream cin("strmatch.in") ;
ofstream cout("strmatch.out") ;

vector<int> v ;

string pat ;

char *pozi ;

int contr ;

void recur(char* ptr)
{
    char *p = strstr(ptr, &pat[0]) ;

    if(p == NULL)return ;

    if(p - pozi <= 1000)v.push_back(p - pozi) ;
        else contr ++ ;

    recur(p + 1) ;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    string a ;

    getline(cin, pat) ;
    getline(cin, a) ;

    pozi = &a[0] ;

    recur(&a[0]) ;

    cout << v.size() + contr << endl ;

    for(int f = 0 ; f < v.size() && f < 1000 ; f ++)
        cout << v[f] << " " ;

    return 0 ;
}