text

Time limit: 0.05s Memory limit: 4MB Input: text.in Output: text.out

Vasile lucrează intens la un editor de texte. Un text este format din unul sau mai multe paragrafe. Orice paragraf se termină cu Enter şi oricare două cuvinte consecutive din acelaşi paragraf sunt separate prin spaţii (unul sau mai multe). În funcţie de modul de setare a paginii, numărul maxim de caractere care încap în pagină pe o linie este unic determinat (notăm cu MAXMAX).

Funcţia pe care Vasile trebuie să o implementeze acum este alinierea în pagină a fiecărui paragraf din text la stânga şi la dreapta. Pentru aceasta el va trebui să împartă fiecare paragraf în linii separate de lungime MAXMAX (fiecare linie terminată cu Enter). Împărţirea se realizează punând numărul maxim posibil de cuvinte pe fiecare linie, fără împărţirea cuvintelor în silabe. Pentru aliniere stânga-dreapta, el trebuie să repartizeze spaţii în mod uniform între cuvintele de pe fiecare linie, astfel încât ultimul caracter de pe linie să fie diferit de spaţiu, iar numărul total de caractere de pe linie să fie egal cu MAXMAX. Excepţie face numai ultima linie din paragraf, care rămâne aliniată la stânga (cuvintele fiind separate printr-un singur spaţiu, chiar dacă linia nu este plină).

În general, este puţin probabil ca alinierea să fie realizabilă prin plasarea aceluiaşi număr de spaţii între oricare două cuvinte consecutive de pe linie. Vasile consideră că este mai elegant ca, dacă între unele cuvinte consecutive trebuie plasat un spaţiu în plus faţă de alte perechi de cuvinte consecutive, acestea să fie plasate la începutul liniei.

Cerinţă

Scrieţi un program care să citească lungimea unei linii şi textul dat şi care să alinieze textul la stânga şi la dreapta.

Date de intrare

Fişierul de intrare text.in conţine pe prima linie MAXMAX, lungimea maximă a unui rând.
Pe următoarele linii este scris textul.

Date de ieşire

Fişierul de ieşire text.out conţine textul aliniat stânga-dreapta.

Restricţii și precizări

  • 2MAX1 0002 \leq MAX \leq 1\ 000
  • Atenție! Lungimea maximă a oricărui cuvânt din text este de 4040 de caractere şi nu depăşeşte MAXMAX. În enunțul original limita unui cuvânt era de 2525 de caractere, însă se pare că testele nu respectau această limită.
  • Atenție! În cazul în care o linie este goală, aceasta se păstrează.
  • Lungimea unui paragraf nu depăşeşte 1 0001\ 000 de caractere.
  • Soluţia este unică.

Exemplul 1

text.in

20
Vasile are multe bomboane bune.

text.out

Vasile   are   multe
bomboane bune.

Explicație

Pe prima linie au fost plasate câte 33 spaţii între cuvintele consecutive.

Exemplul 2

text.in

20
Ana are mere.
Ion are multe pere galbene?

text.out

Ana are mere.
Ion  are  multe pere
galbene?

Explicație

Între Ion şi are există 22 spaţii, între are şi multe există 22 spaţii, iar între multe şi pere există un spaţiu.

Observaţi că paragraful Ana are mere. (care are lungimea mai mică decât 2020) a rămas aliniat la stânga, iar ultima linie din fiecare paragraf rămâne aliniată la stânga, cuvintele consecutive fiind separate printr-un singur spaţiu.

Log in or sign up to be able to send submissions!