Cod sursa(job #1042882)

Utilizator NitaMihaitavoidcube NitaMihaita Data 27 noiembrie 2013 19:26:26
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream>
#define numaru 2000000
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
unsigned int poz[numaru],n,r,rr[numaru];
char a[numaru],b[numaru];
int main()
{
    f.getline(a,numaru+1);
    f.getline(b,numaru+1);
    unsigned int i,j,lb,la;
    for(la=0;a[la]!='\0';++la);
    for(i=0;b[i]!='\0';++i) if(b[i]==a[0]) poz[n++]=i;
    lb=i;
    for(i=0;i<n;++i)
        if(poz[i]<=lb-la)
        {
            for(j=poz[i];b[j]==a[j-poz[i]] && a[j-poz[i]]!='\0';++j);
            if(j-poz[i]==la)rr[r++]=poz[i];
        }
    g<<r<<"\n";
    if(r>1000)r=1000;
    for(i=0;i<r;++i) g<<rr[i]<<" ";
    g<<"\n";
    f.close();
    g.close();
    return 0;
}