Pagini recente » Cod sursa (job #2340779) | Cod sursa (job #947329) | Rating Antonia Tarfulea (antonia16.....) | Cod sursa (job #1737561) | Cod sursa (job #255909)
Cod sursa(job #255909)
#include<fstream>
#include<string>
using namespace std;
#define xxx 2000001
ifstream fin("strmatch.in");
ofstream fout("strmatch.out");
char a[xxx],b[xxx],c;
int lunga,lungb,n,poz[1001],vals,valc,li;
int verif(int k)
{
int i;
for(i=0;i<lunga;i++)
if(a[i]!=b[i+k])
return 0;
return 1;
}
int main()
{
fin.get(a,xxx);fin.get();
fin.get(b,xxx);
lunga=strlen(a);
lungb=strlen(b);
int i;
for(i=0;i<lunga;i++)
{
c=a[i];
valc+=c;
c=b[i];
vals+=c;
}
if(valc==vals)
if(verif(0))
n++,poz[n]=1;
for(li=0,i=lunga;i<lungb && n<1000;li++,i++)
{
c=b[li];
vals-=c;
c=b[i];
vals+=c;
if(vals==valc)
if(verif(li+1))
n++,poz[n]=li+1;
}
fout<<n<<'\n';
for(i=1;i<=n;i++)
fout<<poz[i]<<' ';
fout<<'\n';
fout.close();
return 0;
}