3366 - Număr întreg periodic

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.

Enunt

Alice a devenit interesată de numere întregi periodice. Spunem că un număr întreg pozitiv X e periodic cu lungimea L dacă există un întreg pozitiv P cu L cifre astfel incat X poate fi scrie ca PPPP...P.

De exemplu: Numărul X=123123123 e periodic cu lungimile L=3 (P=123) și L=9 (P=123123123). Numărul X=42424242 e periodic cu lungimile L=2, L=4 și L=8. Numărul X=123445 e periodic cu lungimea L=5.

Cerința

Pentru o perioadă dată de lungime L și un număr întreg pozitiv A, Alice vrea să găsească un număr X strict mai mare ca A astfel încât X sa fie periodic cu lungimea L.

Date de intrare

Fișierul de intrare periodicin.txt va conține pe prima linie numărul L ce reprezintă lungimea perioadei. Pe a doua linie, numărul natural nenul A cu cel mult 100000 de cifre.

Date de ieșire

Fișierul de ieșire periodicout.txt va conține pe prima linie numărul S, reprezentând suma numerelor de pe a doua linie a fișierului de intrare.

Restricții și precizări

  • 1 ⩽ L ⩽ 100000

Exemplu 1

periodicin.txt
3
123456
periodicout.txt
124124
Datele corespund restrictiilor


Exemplu 2

periodicin.txt
3
12345
periodicout.txt
100100
Datele corespund restrictiilor


Exemplu 3

periodicin.txt
0
0
periodicout.txt
Nu au fost respectate cerintele impuse


Rezolvare

33366 - Numar intreg periodic
def is_valid_input(L, A):
    return 1 <= L <= 100000 and 0 < A < 10**100000

def find_periodic_number(L, A):
    period = "1" + "0" * (L - 1)
    X = int(period)
    while X <= A:
        X += int(period)
    return X

def main():
    with open("periodicin.txt", "r") as file_in, open("periodicout.txt", "w") as file_out:
        L = int(file_in.readline().strip())
        A = int(file_in.readline().strip())

        if is_valid_input(L, A):
            result = find_periodic_number(L, A)
            file_out.write(str(result) + "\n")
            file_out.write("Datele corespund restrictiilor\n")
        else:
            file_out.write("Nu au fost respectate cerintele impuse\n")

if __name__ == "__main__":
    main()