Cod sursa(job #2257222)

Utilizator Cristian25Cristian Stanciu Cristian25 Data 9 octombrie 2018 20:34:48
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>
#include <string.h>
#include <vector>
#define len 2000001
#define pb push_back
#define sz size
#define maxx 1000

using namespace std;
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
vector<unsigned int> v;
char s[len], t[len];
unsigned int s_len, t_len, cont;
int main()
{
    fin >> s >> t;
    s_len = strlen(s);
    t_len = strlen(t);
    if(s_len > t_len)
    {
        fout << 0;
        return 0;
    }
    if(s_len == t_len)
    {
        fout << (!strcmp(s, t) ? 1 : 0);
        return 0;
    }
    while(strstr(t, s))
    {
        ++cont;
        if(cont <= maxx)
            !v.sz() ? v.pb(strstr(t, s) - t) : v.pb(strstr(t, s) - t + v.back() + 1);
        strcpy(t, strstr(t, s) + 1);
    }
    fout << cont << '\n';
    for(unsigned short i = 0; i < v.sz(); ++i)
        fout << v[i] << ' ';
    return 0;
}