Pagini recente » Cod sursa (job #687230) | Cod sursa (job #2887688) | Cod sursa (job #1582027) | Cod sursa (job #1057552) | Cod sursa (job #1674799)
#include <cstdio>
#include <vector>
using namespace std;
char a[2000000], b[2000000];
int main()
{
FILE* f=fopen("strmatch.in", "r");
FILE* f1=fopen("strmatch.out", "w");
fscanf(f, "%s\n%s", &a, &b);
vector<int> v;
vector<int> fin;
int i=0;
int c=0;
while(b[i]!='\0')
{
for(vector<int>::iterator it= v.begin();it!=v.end();it++)
{
if(a[i-(*(it))]=='\0'){
c++;
fin.push_back(*it);
v.erase(it);
it--;
}
else if(a[i-*it]!=b[i]){
v.erase(it);
it--;
}
}
if(b[i]==a[0])
v.push_back(i);
i++;
}
fprintf(f1, "%d\n", c<1000?c:1000);
for(int i=0;i<c&&c<1000;i++){
fprintf(f1, "%d ", fin[i]);
}
return 0;
}