Cod sursa(job #634050)

Utilizator EstarDaian Dragos Estar Data 15 noiembrie 2011 16:28:43
Problema Potrivirea sirurilor Scor 16
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
#include <cstring>
#include <vector>

using namespace std;

ifstream fi("strmatch.in");
ofstream fo("strmatch.out");

int main(){
	string a , b ;
	vector<int> res;
	vector<int> k;
	fi>>a>>b;
	for(int i=0;i<(signed)b.size();i++){
		for(int j=0;j<res.size();j++){
			if(a[(res[j])]!=b[i]){res.erase(res.begin()+j);k.erase(k.begin()+j);continue;}else res[j]++;
			if(!((res[j])<a.size())){res.erase(res.begin()+j);}
		}
		if(b[i]==a[0]&&b.size()-i>=a.size()){
			res.push_back(1);
			k.push_back(i);
		}
	}
	fo<<k.size()<<'\n';
	for(int i=0;i<k.size();i++)
	fo<<k[i]<<' ';
}