Cod sursa(job #1154236)
| Utilizator | Data | 26 martie 2014 01:46:46 | |
|---|---|---|---|
| Problema | Potrivirea sirurilor | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 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=1,j=M;
for(i=M-1;i>0;i--)
{
if(m.substr(0,i)==m.substr(M-i))
{
j=M-i;
break;
}
}
i=n.find(m);
b.push_back(i);
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)<<" ";
}