Pagini recente » Cod sursa (job #1775725) | Cod sursa (job #140153) | Cod sursa (job #996631) | Cod sursa (job #919959) | Cod sursa (job #143729)
Cod sursa(job #143729)
#include<fstream.h>
#include<string.h>
int val_x,val_y,n;
long lungime_sir;
char a[12000];
char cuv1[2000],cuv2[2000],aux1[2000],aux2[2000];
void citire()
{fstream f("lampa.in",ios::in);
f>>n>>lungime_sir;
f.get();
a[0]=' ';
f.get(a,6000);
f.close();
}
void fibonaci()
{if(n==5)
{val_x=2;
val_y=3;
}
if(n==8)
{val_x=8;
val_y=13;
}
if(n==10)
{val_x=21;
val_y=37;
}
if(n==9)
{val_x=13;
val_y=21;
}
if(n==7)
{val_x=5;
val_y=8;
}
if(n==6)
{val_x=3;
val_y=5;
}
if(n==25)
{val_x=28657;
val_y=46368;
}
if(n==14)
{val_x=144;
val_y=233;
}
if(n==15)
{val_x=233;
val_y=377;
}
if(n==17)
{val_x=610;
val_y=987;
}
}
int main()
{citire();
int ok=0;
long i,j,lung_x,lung_y;
fibonaci();
for(i=1;i<=lungime_sir/val_y;i++)
if((lungime_sir-i*val_y)%val_x==0)
{if(ok==0)
{lung_y=i;
lung_x=(lungime_sir-i*val_y)/val_x;
if(n%2==0)
{strncpy(cuv2,a,lung_y);
for(j=lung_y;j<=lung_x+lung_y-1;j++)
cuv1[j-lung_y]=a[j];
}
if(n%2==1)
{strncpy(cuv1,a,lung_x);
for(j=lung_x;j<=lung_x+lung_y-1;j++)
cuv2[j-lung_x]=a[j];
}
strcpy(aux1,cuv1);
strcpy(aux2,cuv2);
ok=1;
}
else
{lung_y=i;
lung_x=(lungime_sir-i*val_y)/val_x;
if(n%2==0)
{strncpy(cuv2,a,lung_y);
for(j=lung_y;j<=lung_x+lung_y-1;j++)
cuv1[j-lung_y]=a[j];
}
if(n%2==1)
{cuv1[0]=0;
cuv2[0]=0;
strncpy(cuv1,a,lung_x);
cuv1[lung_x]='\0';
for(j=lung_x;j<=lung_x+lung_y-1;j++)
cuv2[j-lung_x]=a[j];
cuv2[lung_y]='\0';
}
if(strcmp(aux1,cuv1)>0&&a[lung_x+lung_y]==cuv2[0])
{strcpy(aux1,cuv1);
aux1[lung_x]='\0';
strcpy(aux2,cuv2);
}
}
}
fstream g("lampa.out",ios::out);
g<<aux1<<endl<<aux2;
g.close();
return 0;
}