Cod sursa(job #1114914)

Utilizator toncuvasileToncu Vasile toncuvasile Data 21 februarie 2014 19:52:06
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
//Infoarena. Arhiva Educationala. Potrivirea Sirurilor. Brute Force.
#include<iostream>
#include<fstream>
#include<cstring>
using namespace std;

bool match(string,string,int);

int main(){
    freopen("strmatch.in","r",stdin);
    freopen("strmatch.out","w",stdout);

    string P,A;
    cin>>P;
    cin>>A;

    int rez=0, w[2000000];
    int p=P.length(),a=A.length();
    for(int i=0;i<=a-p;i++){
        if( match(P,A,i) ){
            w[rez++]=i;
        }
    }
    cout<<rez<<"\n";
    for(int i=0;i<rez;i++) cout<<w[i]<<" ";

}

bool match(string P,string A,int index){
    int p=P.length(),a=A.length();
    for(int i=index,j=0;i<index+p;i++,j++){
        if(P[j]!=A[i]) return false;
    }
    return true;
}