Nu inteleg de ce imi da eroare de compilare.

Help me pls
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int N,i,j,k=0;
char a[5010],b[5010],*p,b1[5010], *q,rez[5010],a1[5010], rez1[5010];
int main()
{
ifstream f("vecini2.in");
ofstream g("vecini2.out");
f>>N;
f.get();
f.getline(a,5010);
f.getline(b,5010);
for(i=0; i<(N-1); i++)
for(j=i+1; j<N; j++)
if(b[i]>b[j]) swap(b[i],b[j]);
k=0; int save=0;
strcpy(a1,a);
strcpy(b1,b);
strcpy(b1,strrev(b1));
for(i=0; i<N; i++)
{
q=strchr(b1,a[i]);
if(q)
{
rez[++k]=a[i];
*q='1';
}
else
{ a[i]--;
while(1)
{
q=strchr(b1,char(a[i]));
if(!q) a[i]--;
else
{ *q='1';
rez[++k]=a[i];
break;
}
if(a[i]<'a')
{
save=1;
break;
}
}
break;
}
q=NULL;
}
int nrul=0;
if(save==0)
{
for(p=b1; *p; p++)
{if((*p)!='1') {rez[++k]=*p;
nrul=1;}}
if(nrul==0) g<<"0";
else {for(i=1; i<=k; i++) g<<rez[i];}
g<<"\n";
}
else g<<0;
k=0;
save=0;
for(i=0; i<N; i++)
{
q=strchr(b,a1[i]);
if(q)
{
rez1[++k]=a1[i];
*q='1';
}
else
{
a1[i]++;
while(1)
{
q=strchr(b,char(a1[i]));
if(!q) a1[i]++;
else
{
rez1[++k]=a1[i];
*q='1';
break;
}
if(a1[i]>'z')
{
save=1;
break;
}
}
break;
}
q=NULL;
}
nrul=0;
if(save==0)
{
for(p=b; *p; p++)
{if((*p)!='1') {rez1[++k]=*p;
nrul=1;}}
if(nrul==0) g<<"0";
else {for(i=1; i<=k; i++) g<<rez1[i];}
g<<"\n";}
return 0;
}
Editat de moderator: Foloseşte tag-ul [ code] [ /code] atunci când postezi linii de cod.