antivirus

Time limit: 0.02s Memory limit: 2MB Input: virus.in Output: virus.outPoints by default: 10p

Virusul DOBAD atacă fişierele text şi le modifică, linie cu linie, în etape.

  • Etapa 11 – dacă linia curentă este nevidă, determină numărul total de spaţii, poziţiile la care începe fiecare secvenţă de spaţii consecutive şi lungimile acestor secvenţe apoi trece la etapele 22 şi 33; dacă linia curentă e vidă, determină câte linii consecutive vide sunt şi le înlocuieşte cu o singură linie pe care scrie, între caractere /, numărul acestora;
  • Etapa 22 – şterge toate spaţiile de pe linia curentă şi înlocuieşte textul iniţial cu cel obţinut;
  • Etapa 33 – adaugă la sfârşitul liniei, imediat după textul obţinut la etapa 22, o succesiune de numere naturale, delimitate prin caractere /, reprezentând poziţia la care a început o secvenţă de spaţii apoi lungimea acesteia, în ordinea în care aceste secvenţe de spaţii au apărut în text.

Cerinţă

Scrieţi un program care preia conţinutul unui fişier virusat de DOBAD şi îl devirusează, aducându-l la forma iniţială.

Date de intrare

Fişierul virus.in conţine pe prima linie nn, numărul de linii din care este alcătuit textul virusat apoi cele nn linii infectate.

Date de ieşire

Fişierul virus.out conţine pe prima linie mm, numărul de linii din fişierul restaurat apoi cele m linii ale fişierului devirusat.

Restricții și precizări

  • 0<n<2000<n<200, 0<m<10 0000<m<10\ 000
  • Dacă o linie nevidă nu conţine spaţii, aceasta nu va fi alterată de virus.
  • Fişierul nevirusat nu conţine caracterul /, nu conţine linii formate doar din spaţii şi nu se termină cu linii vide.
  • Liniile din fişierul de intrare nu depăşesc 255255 caractere iar primul caracter dintr-o linie este considerat pe poziţia 11.

Exemplu

virus.in

6
satestam!fisierulacesta/3/1/11/8/27/3/
/2/
culiniivide/3/2/10/10/
/3/
gata
numodificnimic./3/1/11/5/

virus.out

9
sa testam!        fisierul   acesta


cu  linii          vide



gata
nu modific     nimic

Explicație

  • Lin.11
  • Lin.22-vidă
  • Lin.33-vidă
  • Lin.44
  • Lin.55-vidă
  • Lin.66-vidă
  • Lin.77-vidă
  • Lin.88
  • Lin.99

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