Cod sursa(job #1464848)

Utilizator RynaquiAxinte Silviu Rynaqui Data 25 iulie 2015 16:35:32
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
#define MAXN 2000001
char A[MAXN],B[MAXN];
long int v[1001];
int main()
{
    int ma,mb,cnt=0,i,j;
    freopen("strmatch.in","r",stdin);
    freopen("strmatch.out","w",stdout);
    cin >> A >> B;
    ma=strlen(A);
    mb=strlen(B);
    mb=mb-ma;
    for(i=0;i<=mb;i++)
    {
        if(B[i]==A[0])
        {
            for(j=0;j<ma;j++)
                if(B[i+j]!=A[j]) break;
            if(j>=ma) {cnt++;if(cnt<=1000)v[cnt]=i;}
        }
    }
    cout << cnt << endl;
    for(i=1;i<=min(1000,cnt);i++) cout << v[i] << " ";
    return 0;
}