2029 - AfisareN

From Bitnami MediaWiki

Cerinţa[edit | edit source]

Citindu-se un număr natural n şi un şir de caractere să se afişeze de n ori şirul de caractere. De fiecare dată se va trece pe rând nou.

Date de intrare[edit | edit source]

Fişierul de intrare afisarenin.txt conţine pe prima linie numărul n, iar pe a două şirul de caractere.

Date de ieșire[edit | edit source]

Fişierul de ieşire afisarenout.txt va afişa pe fiecare linie de la 1 la n şirul de caractere.

Restricţii şi precizări[edit | edit source]

  • 1 ≤ n ≤ 50
  • lungimea şirului de caractere este maxim 1.000.000
  • daca n = 0 nu se va afisa nimic

Exemplu 1[edit | edit source]

afisarenin.txt
3 
AfisareN 
afisarenout.txt
Datele de intrare corespund restrictiilor impuse
AfisareN 
AfisareN 
AfisareN 


Exemplu 2[edit | edit source]

afisarenin.txt
51
AfisareN
afisarenout.txt
Datele de intrare nu corespund restrictiilor impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def main():

   with open('afisarenin.txt', 'r') as fin, open('afisarenout.txt', 'w') as fout:
       n = int(fin.readline().strip())
       sir = fin.readline().strip()
       # Verifică dacă numărul și șirul respectă restricțiile
       if not (1 <= n <= 50) or len(sir) > 1000000 or not all(c.isalpha() or c.isspace() for c in sir):
           fout.write("Datele de intrare nu corespund restrictiilor impuse\n")
           return
       fout.write("Datele de intrare corespund restrictiilor impuse\n")
       # Afișează șirul de n ori
       for _ in range(n):
           fout.write(sir + '\n')

if __name__ == "__main__":

   main()

</syntaxhighlight>