Cod sursa(job #2483582)

Utilizator richardbaczur1Baczur Richard richardbaczur1 Data 29 octombrie 2019 22:04:15
Problema Potrivirea sirurilor Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.39 kb
#include <bits/stdc++.h>
#define NMAX 2000000
#define inFile "strmatch.in"
#define outFile "strmatch.out"

using namespace std;
char a[NMAX],b[NMAX];
int i,j;
queue<int> rez;
void pass() {}
int main()
{
    freopen(inFile, "r", stdin);
    freopen(outFile, "w", stdout);

    scanf("%s", &a);
    scanf("%s", &b);
    bool isGood=false;
    int pos,nextStart;
    i=0;
    while (i<strlen(b))
    {
        if (a[0] == b[i])
        {
            nextStart = 0;
            isGood = true;
            pos=i;
            i++;
            j = 1;
            while (j < strlen(a))
            {
                pass();
                if (nextStart == 0 && b[i] == a[0])
                {
                    nextStart = i;
                }
                if (b[i]!=a[j])
                {
                    isGood=false;
                    break;
                }
                i++;
                j++;
            }
            if (isGood)
            {
                rez.push(pos);
            }
            if (nextStart != 0)
            {
                i = nextStart;
                continue;
            }
        }
        i++;
    }
    printf("%d \n", rez.size());
    for (int i = 0; i < 1000 && !rez.empty(); i++)
    {
        printf("%d ", rez.front());
        rez.pop();
    }

    fclose(stdin);
    fclose(stdout);
    return 0;
}