Pagini recente » Cod sursa (job #1282128) | Cod sursa (job #1124025) | Cod sursa (job #1133048) | Cod sursa (job #1574759) | Cod sursa (job #1774042)
//Se dau doua siruri A si B formate din litere mici si mari ale alfabetului englez si din cifre. Se cere gasirea tuturor aparitiilor sirului A ca subsecventa a sirului B.
#include <iostream>
#include <fstream>
#include <string.h>
char x[2000000],y[2000000],c;
int k,kx,ky,g,gasiri,pozitii[2000000];
using namespace std;
int main()
{
ifstream a("strmatch.in");
ofstream b("strmatch.out");
a.getline(x,2000000);
a.getline(y,2000000);
ky=strlen(y);
kx=strlen(x);
for(int i=0;i<ky-kx;i++)
{
g=0;
for(int j=0;j<kx;j++)
if((x[j]==y[i+j]))
g+=1;
if(g==kx)
{
gasiri+=1;
pozitii[gasiri]=i;
}
}
b<<gasiri<<"\n";
for(int i=1;i<=gasiri;i++)
b<<pozitii[i]<<' ';
}