2029 - AfisareN

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

Cerinţa

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

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

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

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

Exemplu 1

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


Exemplu 2

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


Rezolvare

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()