Răspuns :
#include<iostream>
#include<cstring>
using namespace std;
char s[21][21];
int main()
{
int x,y,n,l=0,nr=0,ok=0;
cin>>n>>x>>y;
char cuv[21];
for(int i=0;i<n;i++)
{
cin>>cuv;
int d1=strlen(s[l]),d2=strlen(cuv);
if(y==d1)
{
l++;
nr=0;
}
else
if(y-d1<=d2)
{
int ct=y-d1+nr,ct1=ct/nr,ct2=ct%nr;
char *p,lin[21],star[20]="";
strcpy(lin,s[l]);
for(int i=1;i<=ct1;i++)
strcat(star,"*");
strcpy(s[l],"");
p=strtok(lin,"*");
while(p!=NULL)
{
strcat(s[l],p);
if(nr!=0)
{
strcat(s[l],star);
if(ct2!=0)
{
strcat(s[l],"*");
ct2--;
}
nr--;
}
p=strtok(NULL,"*");
}
nr=0;
l++;
}
else
if(d1!=y && d1!=0)
{
strcat(s[l],"*");
nr++;
}
if((l+1)%(x+1)==0)
l++;
strcat(s[l],cuv);
}
if(nr!=0)
{
int d1=strlen(s[l]),d2=strlen(cuv);
int ct=y-d1+nr,ct1=ct/nr,ct2=ct%nr;
char *p,lin[21],star[20]="";
strcpy(lin,s[l]);
for(int i=1;i<=ct1;i++)
strcat(star,"*");
strcpy(s[l],"");
p=strtok(lin,"*");
while(p!=NULL)
{
strcat(s[l],p);
if(nr!=0)
{
strcat(s[l],star);
if(ct2!=0)
{
strcat(s[l],"*");
ct2--;
}
nr--;
}
p=strtok(NULL,"*");
}
}
for(int i=0;i<=l;i++)
cout<<s[i]<<"\n";
return 0;
}
Vă mulțumim că ați vizitat site-ul nostru dedicat Informatică. Sperăm că informațiile oferite v-au fost de ajutor. Dacă aveți întrebări sau nevoie de asistență suplimentară, nu ezitați să ne contactați. Ne vedem curând și nu uitați să ne adăugați la marcaje!