Pagini recente » Cod sursa (job #3160549) | Cod sursa (job #969029) | Cod sursa (job #2922583) | Cod sursa (job #886860) | Cod sursa (job #3197212)
#include <iostream>
#include <string.h>
#include <queue>
#include <fstream>
using namespace std;
int main()
{
ifstream f ("strmatch.in");
ofstream g ("strmatch.out");
bool p=true;
int db=0,db2=0;
queue<int>q,qq;
char a[2000000],b[2000000];
f.getline(a, 2000000);
f.getline(b, 2000000);
for (int i=0; i<strlen (b); i++) if (a[0]==b[i]) {
if (a[strlen(a)-1]==b[i+strlen(a)-1]) {q.push(i); db++;}
}
while (db>0) {p=true;
int v=q.front(); q.pop(); db--;
for (int i=1; i<strlen(a)-1 &&p==true; i++){
if(a[i]!=b[v+i]) p=false;
}
if (p==true) {qq.push(v); db2++;}
}
g<<db2<<endl;
while (db2>0) {
g<< qq.front()<<" "; qq.pop(); db2--;
}
return 0;
}