Cod sursa(job #2339696)

Utilizator CristianSoareSoare Cristian Costantin CristianSoare Data 9 februarie 2019 11:09:36
Problema Potrivirea sirurilor Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
char s[2000001],t[2000001];
int l,p[10000],v[1000],ap,i,n,m;
int main()
{
    f>>s+1;
    f>>t+1;
    n=strlen(s+1);
    m=strlen(t+1);
    p[1]=0;
    l=0;
    for(i=2; i<=n; i++){
        while(l!=0&&s[i]!=s[l+1])
            l=p[l];
        if(s[i]==s[l+1])
            l++;
        p[i]=l;
    }
    l=0;
    for(i=1; i<=m; i++){
        while(l!=0&&t[i]!=s[l+1])
            l=p[l];
        if(t[i]==s[l+1])
            l++;
        if(n==l)
        {ap++;
        if(ap<=1000)
         v[ap]=i-n;
         l=p[l];
        }

}
    g<<ap<<'\n';
    for(i=1; i<=ap && i <= 1000; i++)
        g<<v[i]<<" ";
        return 0;
}