3366 - Număr întreg periodic

De la Universitas MediaWiki

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