Pagini recente » Cod sursa (job #736630) | Infoarena Monthly 2012 - Runda 3, Clasament | Cod sursa (job #634296) | Cod sursa (job #884105) | Cod sursa (job #3292222)
#include<fstream>
#include<string>
#include<vector>
const std::string txt="strmatch";
std::ifstream cin(txt+".in");
std::ofstream cout(txt+".out");
std::string a,b;
std::vector <int> v;
int u[(int)1e6*4+5];
signed main(int n,int m,int j){
cin>>a>>b;
b=a+" "+b;
n=a.size();
m=b.size();
j=0;
for(int i=1;i<m;++i){
while(j>0 && b[j]!=b[i])
j=u[j-1];
if(b[j]==b[i])
++j;
u[i]=j;
if(u[i]==n)
v.push_back(i-n);
}
cout<<v.size()<<'\n';
v.resize(std::min((int)v.size(),1000));
for(auto i:v)
cout<<i-n<<' ';
}