Pagini recente » Cod sursa (job #2162951) | Cod sursa (job #2302762) | Cod sursa (job #1751420) | Cod sursa (job #1969285) | Cod sursa (job #433288)
Cod sursa(job #433288)
/*
* File: main.cpp
* Author: VirtualDemon
*
* Created on April 3, 2010, 2:09 PM
*/
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <iterator>
#define Nmax 4000002
/*
*
*/
using namespace std;
char A[Nmax>>1], B[Nmax], C[Nmax>>1];
int v[1001];
inline const int& min( const int x, const int& y )
{
if( x < y )
return x;
return y;
}
int main(int argc, char** argv)
{
int N, M, i, j, k=0;
ifstream in( "strmatch.in" );
in.getline( A, Nmax, '\n' );
A[strlen(A)-1]='\0';
in.get( B, Nmax );
strcpy( C, B );
strcat( B, C );
N=min( strlen(C), 1001 );
for( M=strlen(A), i=0; i < N; ++i )
if( B[i] == A[0] )
{
for( j=1; j < M; ++j )
if( A[j] != B[i+j] )
break;
if( j == M )
v[k]=i, ++k;
}
ofstream out( "strmatch.out" );
out<<k<<'\n';
copy( v, v+k, ostream_iterator<int>(out, " ") );
out<<'\n';
return EXIT_SUCCESS;
}