Cod sursa(job #446019)

Utilizator alexandru92alexandru alexandru92 Data 24 aprilie 2010 19:38:49
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
/* 
 * File:   main.cpp
 * Author: virtualdemon
 *
 * Created on April 24, 2010, 7:24 PM
 */
#include <string>
#include <vector>
#include <cstdlib>
#include <fstream>
#include <iterator>

/*
 * 
 */
using namespace std;
string pattern, ss;
vector< int > match;
inline void PatternMatch( size_t N )
{
    for( size_t p=ss.find( pattern, 0 ); p < N; p=ss.find( pattern, p+1 ) )
        match.push_back( p );
}
inline int min( size_t x, size_t y )
{
    if( x < y )
        return x;
    return y;
}
int main(int argc, char** argv)
{
    ifstream in( "strmatch.in" );
    ofstream out( "strmatch.out" );
    in>>pattern>>ss;
    PatternMatch( ss.size() );
    out<<match.size()<<'\n';
    copy( match.begin(), match.begin()+min( 1000, match.size() ), ostream_iterator<int>( out, " " ) );
    out<<'\n';
    return (EXIT_SUCCESS);
}