Cod sursa(job #1154237)

Utilizator nickulNic Kul nickul Data 26 martie 2014 01:51:29
Problema Potrivirea sirurilor Scor 6
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<fstream>
#include<string>
#include<vector>
 
using namespace std;
 
ifstream in("strmatch.in");
ofstream out("strmatch.out");
 
int main()
{
    string m,n;
    vector<int> b;
    in>>m>>n;
    unsigned int M=m.length(),N=n.length(),i,j=M;
	i=n.find(m);
	if(i>=0)
	{
		b.push_back(i);
		for(i=M-1;i>0;i--)
		{
			if(m.substr(0,i)==m.substr(M-i)) 
			{
				j=M-i;
				break;
			}
		}
		while(i!=-1)
		{
			i=n.find(m,i+j);
			b.push_back(i);
		}
		if(b.at(b.size()-1)==-1) b.pop_back();
		out<<b.size()<<'\n';
		for(i=0;i<b.size()&&i<1000;i++) out<<b.at(i)<<" ";
	}
}