Cod sursa(job #977587)

Utilizator vlady1997Vlad Bucur vlady1997 Data 26 iulie 2013 10:27:04
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
        #include <cstdio>
        #include <cstring>
        using namespace std;
        char s[2000001], a[2000001];
        int b[2000001];
        bool verificare (int p, int m, int n)
        {
            for (int i=p+1; i<p+m; i++)
            {
                if (s[i]!=a[i-p]) return false;
            }
            return true;
        }
        int main()
        {
            freopen("strmatch.in","r",stdin);
            freopen("strmatch.out","w",stdout);
            gets(a); gets(s); int m=strlen(a); int n=strlen(s); int nr=0;
            for (int i=0; i<=n-m; i++)
            {
                int p=-1;
                if (s[i]==a[0])
                {
                    p=i;
                    if (verificare(i,m,n)==true) {nr++; b[nr]=p;}
                }
            }
            printf("%d\n",nr);
            for (int i=1; i<=nr; i++) printf("%d ",b[i]);
            fclose(stdin);
            fclose(stdout);
            return 0;
        }