Cod sursa(job #2106856)
Utilizator | Data | 16 ianuarie 2018 12:40:05 | |
---|---|---|---|
Problema | Potrivirea sirurilor | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.6 kb |
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("strmatch.in");
ofstream g("strmatch.out");
char A[2000005], B[2000005], *p;
int n, x, v[50];
int main()
{
f.get(A,100);
f.get();
f.get(B,100);
if(B[0]==B[strlen(B)-1]) x=1;
int k=0, q=0;
p=strstr(A, B);
while(p)
{
k++;
n=p-A;
if(q==0) v[++q]=n;
else v[++q]=n+(strlen(B)-x)*(q-1);
strcpy(A+n, A+n+strlen(B)-x);
p=strstr(A, B);
}
g<<k<<endl;
for(int i=1;i<=q || i<=1000;i++) g<<v[i]<<" ";
return 0;
}