2029 - AfisareN

De la Universitas MediaWiki

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