Cod sursa(job #1467842)

Utilizator shirazEliot Hugo shiraz Data 4 august 2015 21:24:16
Problema Potrivirea sirurilor Scor 16
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <tr1/functional>
using namespace std;


int main()
{
    ifstream f("strmatch.in");
     ofstream g("strmatch.out");



    vector<int> a;
    string n,m; int v,t=0,x=0,r,w;
    getline(f,m);getline(f,n);
    tr1 ::hash<string> hsh; tr1::hash<int> hin;
    long long q=hsh(m);v=m.length();r=n.length();w=hsh(n.substr(0,v));
    for (int i=0;i<=r-v;i++){

        if ((q==w)){
            for (int j=0;j<v;j++){

                if (m[j]==n[i+j]) ++t;
                if (t==v) {a.push_back(i);t=0;++x;}
            }
        }
        w=w+hin(n[i+v])-hin(n[i]);

}
g<<x<<'\n';
for (int i=0;i<x;i++){
    g<<a[i]<<' ';
}
    return 0;
}