Pagini recente » Cod sursa (job #1397584) | Istoria paginii utilizator/ghitasimonairinq | Cod sursa (job #222968) | Cod sursa (job #1839684) | Cod sursa (job #388569)
Cod sursa(job #388569)
#include <stdio.h>
#include <string.h>
int max,nc;
char x[1001],m[30][501];
void cuvinte ()
{
char *p;
p=strtok (x," ");
while (p)
{
strcpy (m[++nc],p);
p=strtok (NULL," ");
}
}
void print (int sp[], int uc, int uc1)
{
int i,j;
for (i=uc1;i<=uc;i++)
{
printf ("%s",m[i]);
for (j=1;j<=sp[i];j++)
printf (" ");
}
printf ("\n");
}
void aliniere ()
{
int i,uc=0,ncf=0,sp[501],uc1;
if (strlen (x) - 1 <= max)
printf ("%s\n",x);
else
{
cuvinte ();
while (uc < nc)
{
ncf=0;
uc1=uc+1;
for (i=uc1;i<=nc+1 && ncf + (i-1-uc1) <= max;i++)
{
ncf=ncf+strlen (m[i]);
}
i--;
ncf=ncf-strlen (m[i]);
uc=i-1;
for (i=uc1;i<=uc;i++)
sp[i]=0;
if (uc == nc)
{
for (i=1;i<=nc;i++)
sp[i]=1;
print (sp,uc,uc1);
}
else
{
while (ncf < max)
{
if (ncf + uc - 1 <= max)
{
for (i=uc1;i<uc;i++)
{
sp[i]++;
ncf++;
}
}
else
{
i=uc1;
while (ncf < max)
{
sp[i++]++;
ncf++;
}
}
}
print (sp,uc,uc1);
}
}
}
}
void scan ()
{
scanf ("%d\n",&max);
while (gets (x) != 0)
{
nc=0;
aliniere ();
}
}
int main ()
{
freopen ("4-text.in","r",stdin);
freopen ("text.out","w",stdout);
scan ();
fcloseall ();
return 0;
}